maam-0.3.0.0: Monadic Abstracting Abstract Machines (MAAM) built on Galois Transformers

Safe HaskellNone
LanguageHaskell2010

Lang.LamIf.Syntax

Documentation

data PreAtom n e Source

Constructors

AInteger  
AVar n 
ALam n e 

aLamL :: forall n e. Prism (PreAtom n e) (n, e) Source

aVarL :: forall n e. Prism (PreAtom n e) n Source

aIntegerL :: forall n e. Prism (PreAtom n e) Source

mapAtomM :: Monad m => (n -> m n') -> (n -> m n') -> (e -> m e') -> PreAtom n e -> m (PreAtom n' e') Source

data Op Source

Constructors

Plus 
Minus 

data PreExp n e Source

Constructors

EAtom (PreAtom n e) 
EIf e e e 
ELet n e e 
EOp Op e e 
EApp e e 

mapExpM :: Monad m => (n -> m n') -> (n -> m n') -> (e -> m e') -> PreExp n e -> m (PreExp n' e') Source

mapExp :: (n -> n') -> (n -> n') -> (e -> e') -> PreExp n e -> PreExp n' e' Source