Safe Haskell | None |
---|---|
Language | Haskell2010 |
- externals :: [External]
- appArgM :: Monad m => Int -> CoreExpr -> m CoreExpr
- buildAppM :: MonadCatch m => CoreExpr -> CoreExpr -> m CoreExpr
- buildAppsM :: MonadCatch m => CoreExpr -> [CoreExpr] -> m CoreExpr
- buildCompositionT :: (BoundVars c, HasHermitMEnv m, LiftCoreM m, MonadCatch m, MonadIO m, MonadThings m) => CoreExpr -> CoreExpr -> Transform c m x CoreExpr
- buildFixT :: (BoundVars c, LiftCoreM m, HasHermitMEnv m, MonadCatch m, MonadIO m, MonadThings m) => CoreExpr -> Transform c m x CoreExpr
- buildIdT :: (BoundVars c, LiftCoreM m, HasHermitMEnv m, MonadCatch m, MonadIO m, MonadThings m) => Type -> Transform c m x CoreExpr
- staticArgR :: (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, ReadPath c Crumb, MonadCatch m, MonadUnique m) => Rewrite c m CoreDef
- staticArgPosR :: (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, ReadPath c Crumb, MonadCatch m, MonadUnique m) => [Int] -> Rewrite c m CoreDef
- staticArgPredR :: forall c m. (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, ReadPath c Crumb, MonadCatch m, MonadUnique m) => ([(Int, Var)] -> m [Int]) -> Rewrite c m CoreDef
- staticArgTypesR :: (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, ReadPath c Crumb, MonadCatch m, MonadUnique m) => Rewrite c m CoreDef
Documentation
appArgM :: Monad m => Int -> CoreExpr -> m CoreExpr Source
Get the nth argument of an application. Arg 0 is the function being applied.
buildAppM :: MonadCatch m => CoreExpr -> CoreExpr -> m CoreExpr Source
Given expression for f and for x, build f x, figuring out the type arguments.
buildAppsM :: MonadCatch m => CoreExpr -> [CoreExpr] -> m CoreExpr Source
buildCompositionT :: (BoundVars c, HasHermitMEnv m, LiftCoreM m, MonadCatch m, MonadIO m, MonadThings m) => CoreExpr -> CoreExpr -> Transform c m x CoreExpr Source
Build composition of two functions.
buildFixT :: (BoundVars c, LiftCoreM m, HasHermitMEnv m, MonadCatch m, MonadIO m, MonadThings m) => CoreExpr -> Transform c m x CoreExpr Source
Given expression for f, build fix f.
buildIdT :: (BoundVars c, LiftCoreM m, HasHermitMEnv m, MonadCatch m, MonadIO m, MonadThings m) => Type -> Transform c m x CoreExpr Source
Build an expression that is the monomorphic id function for given type.
staticArgR :: (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, ReadPath c Crumb, MonadCatch m, MonadUnique m) => Rewrite c m CoreDef Source
Traditional Static Argument Transformation
staticArgPosR :: (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, ReadPath c Crumb, MonadCatch m, MonadUnique m) => [Int] -> Rewrite c m CoreDef Source
Static Argument Transformations which requires that arguments in the given position are static.
:: (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, ReadPath c Crumb, MonadCatch m, MonadUnique m) | |
=> ([(Int, Var)] -> m [Int]) | given list of static args and positions, decided which to transform |
-> Rewrite c m CoreDef |
Generalized Static Argument Transformation, which allows static arguments to be filtered.
staticArgTypesR :: (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, ReadPath c Crumb, MonadCatch m, MonadUnique m) => Rewrite c m CoreDef Source
Static Argument Transformation that only considers type arguments to be static.