{-# OPTIONS_GHC -cpp -fglasgow-exts -fno-warn-orphans -fallow-overlapping-instances -funbox-strict-fields -fallow-undecidable-instances #-}




{- 
-- WARNING WARNING WARNING --

This is an autogenerated file from misc/pX/gaal/SimpleMod.hs.

Do not edit this file.

All changes made here will be lost!

-- WARNING WARNING WARNING --
-}

#ifndef HADDOCK









module SimpleMod.Instances ()
where
import SimpleMod
import Data.Yaml.Syck
import DrIFT.YAML
import DrIFT.JSON
import DrIFT.Perl5
import DrIFT.Perl6Class
import Control.Monad
import qualified Data.ByteString as Buf

{-* Generated by DrIFT : Look, but Don't Touch. *-}
instance Perl6Class Simple where
    showPerl6TypeDef ns _ = unlines
	    [ showPerl6RoleDef ns "Simple"
	    , showPerl6ClassDef ns "Simple" "Variant1" []
	    , showPerl6ClassDef ns "Simple" "Variant2" []
	    , showPerl6ClassDef ns "Simple" "Variant3" []
	    ]
    asPerl6Object (Variant1) = "Variant1.new(" ++ (concat $ intersperse ", " []) ++ ")"
    asPerl6Object (Variant2) = "Variant2.new(" ++ (concat $ intersperse ", " []) ++ ")"
    asPerl6Object (Variant3) = "Variant3.new(" ++ (concat $ intersperse ", " []) ++ ")"

instance MooseClass Simple where
    showMooseTypeDef ns _ = unlines
	    [ showMooseRoleDef ns "Simple"
	    , showMooseClassDef ns "Simple" "Variant1" []
	    , showMooseClassDef ns "Simple" "Variant2" []
	    , showMooseClassDef ns "Simple" "Variant3" []
	    ]

instance Perl6Class PosAttr where
    showPerl6TypeDef ns _ = unlines
	    [ showPerl6RoleDef ns "PosAttr"
	    , showPerl6ClassDef ns "PosAttr" "PosClass" [("Int","$.aa",""),("Int","@.ab",""),("String","$.ac","")]
	    , showPerl6ClassDef ns "PosAttr" "PosClass2" [("Rational","$.aa",""),("Int","$.ab",""),("String","$.ac","")]
	    ]
    asPerl6Object (PosClass aa ab ac) = "PosClass.new(" ++ (concat $ intersperse ", " [plShow aa, plShow ab, plShow ac]) ++ ")"
    asPerl6Object (PosClass2 aa ab ac) = "PosClass2.new(" ++ (concat $ intersperse ", " [plShow aa, plShow ab, plShow ac]) ++ ")"

instance MooseClass PosAttr where
    showMooseTypeDef ns _ = unlines
	    [ showMooseRoleDef ns "PosAttr"
	    , showMooseClassDef ns "PosAttr" "PosClass" [("Int","aa",""),("ArrayRef","ab","List (Con \"Int\")"),("String","ac","")]
	    , showMooseClassDef ns "PosAttr" "PosClass2" [("Rational","aa",""),("Int","ab",""),("String","ac","")]
	    ]

instance Perl6Class RecAttr where
    showPerl6TypeDef ns _ = unlines
	    [ showPerl6RoleDef ns "RecAttr"
	    , showPerl6ClassDef ns "RecAttr" "MkRec" [("","@.att1","List (List (Con \"Int\"))"),("Int","$.att2",""),("String","$.att3","")]
	    , showPerl6ClassDef ns "RecAttr" "MkAltRec" [("","@.att1","List (List (Con \"Int\"))"),("Rational","$.atta",""),("String","$.attb","")]
	    ]
    asPerl6Object (MkRec aa ab ac) = "MkRec.new(" ++ (concat $ intersperse ", " [plShow aa, plShow ab, plShow ac]) ++ ")"
    asPerl6Object (MkAltRec aa ab ac) = "MkAltRec.new(" ++ (concat $ intersperse ", " [plShow aa, plShow ab, plShow ac]) ++ ")"

instance MooseClass RecAttr where
    showMooseTypeDef ns _ = unlines
	    [ showMooseRoleDef ns "RecAttr"
	    , showMooseClassDef ns "RecAttr" "MkRec" [("ArrayRef","att1","List (List (Con \"Int\"))"),("Int","att2",""),("String","att3","")]
	    , showMooseClassDef ns "RecAttr" "MkAltRec" [("ArrayRef","att1","List (List (Con \"Int\"))"),("Rational","atta",""),("String","attb","")]
	    ]

--  Imported from other files :-

type Buf = Buf.ByteString

#endif
