pisigma-0.2.1: A dependently typed core language

Language.PiSigma.Evaluate

Synopsis

Documentation

newtype Eval e a Source

Constructors

Eval 

Fields

unEval :: StateT e (ErrorT EvalErr Identity) a
 

Instances

MonadState e (Eval e) 
MonadError EvalErr (Eval e) 
Monad (Eval e) 

catchE :: Eval e a -> (EvalErr -> Eval e a) -> Eval e aSource

decl :: Env e => Name -> PrtInfo -> Scope -> Maybe (Clos Type) -> Eval e (Id, Scope)Source

Takes a name, a scope, and potentially a type. It extends the environment and the scope with that name.

decl' :: Env e => Name -> Scope -> Eval e (Id, Scope)Source

defn' :: Env e => Id -> Clos Type -> Eval e ()Source

force :: Env e => Val -> Eval e ValSource

letn :: Env e => Id -> EnvEntry -> Eval e a -> Eval e aSource

Locally updates the environment.

letn' :: Env e => Id -> Clos Type -> Eval e a -> Eval e aSource

run :: e -> Eval e a -> Either EvalErr (a, e)Source

tdecl :: Env e => Name -> Scope -> Clos Type -> Eval e (Id, Scope)Source