module Generators where
import qualified Curry.AbstractCurry as AC (CurryProg)
import qualified Curry.FlatCurry.Type as FC (Prog, TypeExpr)
import qualified Curry.FlatCurry.Annotated.Type as AFC (AProg)
import qualified Curry.FlatCurry.Typed.Type as TFC (TProg)
import qualified Curry.Syntax as CS (Module)
import qualified Generators.GenAbstractCurry as GAC (genAbstractCurry)
import qualified Generators.GenFlatCurry as GFC ( genFlatCurry
, genFlatInterface
)
import qualified Generators.GenTypeAnnotatedFlatCurry
as GTAFC (genTypeAnnotatedFlatCurry)
import qualified Generators.GenTypedFlatCurry as GTFC (genTypedFlatCurry)
import Base.Types (Type, PredType)
import CompilerEnv (CompilerEnv (..))
import qualified IL (Module)
genTypedAbstractCurry :: CompilerEnv -> CS.Module PredType -> AC.CurryProg
genTypedAbstractCurry :: CompilerEnv -> Module PredType -> CurryProg
genTypedAbstractCurry = Bool -> CompilerEnv -> Module PredType -> CurryProg
GAC.genAbstractCurry Bool
False
genUntypedAbstractCurry :: CompilerEnv -> CS.Module PredType -> AC.CurryProg
genUntypedAbstractCurry :: CompilerEnv -> Module PredType -> CurryProg
genUntypedAbstractCurry = Bool -> CompilerEnv -> Module PredType -> CurryProg
GAC.genAbstractCurry Bool
True
genTypedFlatCurry :: CompilerEnv -> CS.Module Type -> IL.Module
-> TFC.TProg
genTypedFlatCurry :: CompilerEnv -> Module Type -> Module -> TProg
genTypedFlatCurry = CompilerEnv -> Module Type -> Module -> TProg
GTFC.genTypedFlatCurry
genTypeAnnotatedFlatCurry :: CompilerEnv -> CS.Module Type -> IL.Module
-> AFC.AProg FC.TypeExpr
genTypeAnnotatedFlatCurry :: CompilerEnv -> Module Type -> Module -> AProg TypeExpr
genTypeAnnotatedFlatCurry = CompilerEnv -> Module Type -> Module -> AProg TypeExpr
GTAFC.genTypeAnnotatedFlatCurry
genFlatCurry :: TFC.TProg -> FC.Prog
genFlatCurry :: TProg -> Prog
genFlatCurry = TProg -> Prog
GFC.genFlatCurry
genFlatInterface :: FC.Prog -> FC.Prog
genFlatInterface :: Prog -> Prog
genFlatInterface = Prog -> Prog
GFC.genFlatInterface