definitive-parser-1.2: A parser combinator library for the Definitive framework
Data.Syntax
type Env f = Map String (ThunkT f)Source
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
builtin :: Unit m => (ThunkT m -> ThunkT m) -> ThunkT mSource
builtin2 :: Unit m => (ThunkT m -> ThunkT m -> ThunkT m) -> ThunkT mSource
builtin3 :: Unit m => (ThunkT m -> ThunkT m -> ThunkT m -> ThunkT m) -> ThunkT mSource
shape :: SyntaxT f -> StringSource
reduce :: MonadReader (Env m) m => SyntaxT m -> ThunkT mSource
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