ast-monad-0.1.0.0: A library for constructing AST by using do-notation

Safe HaskellSafe
LanguageHaskell2010

Language.ASTMonad

Documentation

data Code s Source #

Constructors

Code s (CodeSeq s) 

newtype CodeSeq s Source #

Constructors

CodeSeq 

Fields

Instances

Monoid (CodeSeq s) Source # 

Methods

mempty :: CodeSeq s #

mappend :: CodeSeq s -> CodeSeq s -> CodeSeq s #

mconcat :: [CodeSeq s] -> CodeSeq s #

newtype ASTM p s e a Source #

Constructors

ASTM 

Fields

Instances

Monad (ASTM p s e) Source # 

Methods

(>>=) :: ASTM p s e a -> (a -> ASTM p s e b) -> ASTM p s e b #

(>>) :: ASTM p s e a -> ASTM p s e b -> ASTM p s e b #

return :: a -> ASTM p s e a #

fail :: String -> ASTM p s e a #

Functor (ASTM p s e) Source # 

Methods

fmap :: (a -> b) -> ASTM p s e a -> ASTM p s e b #

(<$) :: a -> ASTM p s e b -> ASTM p s e a #

Applicative (ASTM p s e) Source # 

Methods

pure :: a -> ASTM p s e a #

(<*>) :: ASTM p s e (a -> b) -> ASTM p s e a -> ASTM p s e b #

(*>) :: ASTM p s e a -> ASTM p s e b -> ASTM p s e b #

(<*) :: ASTM p s e a -> ASTM p s e b -> ASTM p s e a #

getParam :: (p -> a) -> ASTM p s e a Source #

getEnv :: ASTM p s e e Source #

putEnv :: e -> ASTM p s e () Source #

modifyEnv :: (e -> e) -> ASTM p s e () Source #

buildAST :: ASTM p s e () -> p -> e -> (e, CodeSeq s) Source #

fromCode :: (p -> e -> (e, s)) -> ASTM p s e () Source #

fromCode' :: ASTM p s e () -> (p -> e -> (e, s)) -> ASTM p s e () Source #