| Safe Haskell | Safe-Inferred |
|---|
DDC.Core.Transform.TransformX
Description
General purpose tree walking boilerplate.
- class TransformUpMX m c where
- transformUpX :: forall c a n. (Ord n, TransformUpMX Identity c) => (KindEnv n -> TypeEnv n -> Exp a n -> Exp a n) -> KindEnv n -> TypeEnv n -> c a n -> c a n
- transformUpX' :: forall c a n. (Ord n, TransformUpMX Identity c) => (Exp a n -> Exp a n) -> c a n -> c a n
Documentation
class TransformUpMX m c whereSource
Methods
Arguments
| :: Ord n | |
| => (KindEnv n -> TypeEnv n -> Exp a n -> m (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. |
| -> m (c a n) |
Bottom-up monadic rewrite of all core expressions in a thing.
Instances
| Monad m => TransformUpMX m Alt | |
| Monad m => TransformUpMX m Lets | |
| Monad m => TransformUpMX m Exp | |
| Monad m => TransformUpMX m Module |
Arguments
| :: forall c a n . (Ord n, TransformUpMX 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 |
Bottom up rewrite of all core expressions in a thing.
Arguments
| :: forall c a n . (Ord n, TransformUpMX Identity c) | |
| => (Exp a n -> Exp a n) | The worker function is given the current kind and type environments. |
| -> c a n | Transform this thing. |
| -> c a n |
Like transformUpX, but without using environments.