ast-monad-0.1.0.0: A library for constructing AST by using do-notation
Language.ASTMonad
data Code s Source #
Constructors
newtype CodeSeq s Source #
Fields
Instances
Methods
mempty :: CodeSeq s #
mappend :: CodeSeq s -> CodeSeq s -> CodeSeq s #
mconcat :: [CodeSeq s] -> CodeSeq s #
newtype ASTM p s e a Source #
(>>=) :: 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 #
fmap :: (a -> b) -> ASTM p s e a -> ASTM p s e b #
(<$) :: a -> ASTM p s e b -> ASTM p s e a #
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 #
fromCodeSeq :: CodeSeq s -> [Code s] Source #
toCodeSeq :: [Code s] -> CodeSeq s Source #
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 #