egison-5.0.0: Programming language with non-linear pattern-matching against non-free data
LicenseMIT
Safe HaskellNone
LanguageGHC2021

Language.Egison.EvalState

Description

This module defines the state during the evaluation.

Synopsis

Documentation

data EvalState Source #

Constructors

EvalState 

Fields

class (Applicative m, Monad m) => MonadEval (m :: Type -> Type) where Source #

Instances

Instances details
MonadEval m => MonadEval (ExceptT e m) Source # 
Instance details

Defined in Language.Egison.EvalState

Monad m => MonadEval (StateT EvalState m) Source # 
Instance details

Defined in Language.Egison.EvalState

mLabelFuncName :: MonadEval m => Maybe Var -> m a -> m a Source #

type MethodDict = HashMap Type String Source #

Instance environment: maps class name -> method name -> type -> implementation The implementation is stored as a function reference (Var name)

data ConstructorInfo Source #

Constructor environment: maps constructor name -> constructor info Used for type inference and pattern matching

Constructors

ConstructorInfo 

Fields

type PatternConstructorEnv = PatternTypeEnv Source #

Pattern constructor environment: maps pattern constructor name -> type scheme This uses the same format as PatternTypeEnv for consistency