definitive-parser-1.0: A parser combinator library for the Definitive framework
Data.Syntax
type Env f = Map String (ThunkT f)Source
type Eval f = Env f -> ThunkT fSource
type ThunkT f = f (SyntaxT f)Source
data SyntaxT f Source
Constructors
Instances
dict :: Traversal' (SyntaxT f) (Env f)Source
nil :: SyntaxT fSource
variable :: Unit f => String -> SyntaxT f -> SyntaxT fSource
funcall :: ThunkT f -> ThunkT f -> SyntaxT fSource
reduce :: MonadReader (Env m) m => SyntaxT m -> ThunkT mSource
list_ :: [a] -> [a]Source
lambda :: MonadReader (Env m) m => SyntaxT Id -> SyntaxT m -> ThunkT m -> ThunkT mSource
matchPat :: Monad f => SyntaxT Id -> SyntaxT f -> f (Maybe [(String, SyntaxT f)])Source
lambdaSum :: Monad m => [ThunkT m -> ThunkT m] -> ThunkT m -> ThunkT mSource