module Generators where
import qualified Curry.AbstractCurry as AC (CurryProg)
import qualified Curry.FlatCurry.Type as FC (Prog)
import qualified Curry.FlatCurry.Annotated.Type as AFC (AProg, TypeExpr)
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.GenTypedFlatCurry as GTFC (genTypedFlatCurry)
import Base.Types (Type, PredType)
import CompilerEnv (CompilerEnv (..))
import qualified IL (Module)
genTypedAbstractCurry :: CompilerEnv -> CS.Module PredType -> AC.CurryProg
genTypedAbstractCurry = GAC.genAbstractCurry False
genUntypedAbstractCurry :: CompilerEnv -> CS.Module PredType -> AC.CurryProg
genUntypedAbstractCurry = GAC.genAbstractCurry True
genTypedFlatCurry :: CompilerEnv -> CS.Module Type -> IL.Module
-> AFC.AProg AFC.TypeExpr
genTypedFlatCurry = GTFC.genTypedFlatCurry
genFlatCurry :: AFC.AProg a -> FC.Prog
genFlatCurry = GFC.genFlatCurry
genFlatInterface :: FC.Prog -> FC.Prog
genFlatInterface = GFC.genFlatInterface