| Safe Haskell | Safe |
|---|---|
| Language | Haskell98 |
DDC.Core.Transform.TransformDownX
Description
General purpose tree walking boilerplate.
- class TransformDownMX m c where
- transformDownX :: forall c a n. (Ord n, TransformDownMX Identity c) => (KindEnv n -> TypeEnv n -> Exp a n -> Exp a n) -> KindEnv n -> TypeEnv n -> c a n -> c a n
- transformDownX' :: forall c a n. (Ord n, TransformDownMX Identity c) => (Exp a n -> Exp a n) -> c a n -> c a n
Documentation
class TransformDownMX m c where Source #
Minimal complete definition
Methods
transformDownMX :: Ord n => (KindEnv n -> TypeEnv n -> Exp a n -> m (Exp a n)) -> KindEnv n -> TypeEnv n -> c a n -> m (c a n) Source #
Top-down monadic rewrite of all core expressions in a thing.
Instances
| Monad m => TransformDownMX m Alt Source # | |
| Monad m => TransformDownMX m Lets Source # | |
| Monad m => TransformDownMX m Exp Source # | |
| Monad m => TransformDownMX m Module Source # | |
Arguments
| :: forall (c :: * -> * -> *). (Ord n, TransformDownMX Identity c) | |
| => (KindEnv n -> TypeEnv n -> Exp a n -> Exp a n) | The worker function is given the current kind and type environments. |
| -> KindEnv n | Initial kind environment. |
| -> TypeEnv n | Initial type environment. |
| -> c a n | Transform this thing. |
| -> c a n |
Top-down rewrite of all core expressions in a thing.