definitive-parser-2.1: A parser combinator library for the Definitive framework

Safe HaskellNone
LanguageHaskell2010

Data.Syntax.Node

Documentation

data Node k b a Source

Constructors

ValList [a] 
Dictionary (Map k a) 
Quote (Node k b a) 
Text k 
Function b 

Instances

Eq k => NodeFunctor (Node k) m 
Functor (Node k b) 
Foldable (Node k b) 
Eq k => Traversable (Node k b) 
(Show k, Show b, Show a) => Show (Node k b a) 

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