definitive-parser-2.1: A parser combinator library for the Definitive framework
Data.Syntax.Node
module Data.Syntax
data Node k b a Source
Constructors
Instances
type ThunkN k m = ThunkT (Node k) m () Source
type Env k m = Map k (ThunkT (Node k) m ()) Source
nil :: SyntaxT (Node k) m a Source
shape :: Node k b a -> String Source
dict :: Traversal' (Node k b a) (Map k a) Source
funcall :: (Eq k, Unit m) => ThunkT (Node k) m a -> ThunkT (Node k) m a -> ThunkT (Node k) m a Source
builtin :: (Eq k, Unit m) => (ThunkN k m -> ThunkN k m) -> ThunkN k m Source
builtin2 :: (Eq k, Unit m) => (ThunkN k m -> ThunkN k m -> ThunkN k m) -> ThunkN k m Source
builtin3 :: (Eq k, Unit m) => (ThunkN k m -> ThunkN k m -> ThunkN k m -> ThunkN k m) -> ThunkN k m Source
lambda :: (Matching k, MonadReader (Env k m) m) => ThunkN k m -> ThunkN k m -> ThunkN k m Source
lambdaSum :: (Eq k, Monad m) => [ThunkN k m -> ThunkN k m] -> ThunkN k m -> ThunkN k m Source
reduce :: (Ord k, MonadReader (Env k m) m) => ThunkN k m -> ThunkN k m Source