1 -- | Interpreter to evaluate a term as a host-term.
2 module Language.Symantic.Interpreting.Eval where
8 -- | Interpreter's data.
9 newtype Eval a = Eval { unEval :: a }
10 instance Functor Eval where
11 fmap f (Eval a) = Eval (f a)
12 instance Applicative Eval where
14 (Eval f) <*> (Eval a) = Eval (f a)
15 instance Monad Eval where
27 eval1 :: (a -> b) -> Eval a -> Eval b
30 eval2 :: (a -> b -> c) -> Eval a -> Eval b -> Eval c
33 eval3 :: (a -> b -> c -> d) -> Eval a -> Eval b -> Eval c -> Eval d