lambda-calculator-3.1.1.0: A lambda calculus interpreter
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.Lambda.SystemF.State

Documentation

data TypecheckState name Source #

Constructors

TypecheckState 

Fields

Instances

Instances details
Show name => Show (TypecheckState name) Source # 
Instance details

Defined in Language.Lambda.SystemF.State

Eq name => Eq (TypecheckState name) Source # 
Instance details

Defined in Language.Lambda.SystemF.State

Methods

(==) :: TypecheckState name -> TypecheckState name -> Bool #

(/=) :: TypecheckState name -> TypecheckState name -> Bool #

type Context name = Map name (Binding name) Source #

data Binding name Source #

Constructors

BindTerm (Ty name) 
BindTy 

Instances

Instances details
Show name => Show (Binding name) Source # 
Instance details

Defined in Language.Lambda.SystemF.State

Methods

showsPrec :: Int -> Binding name -> ShowS #

show :: Binding name -> String #

showList :: [Binding name] -> ShowS #

Eq name => Eq (Binding name) Source # 
Instance details

Defined in Language.Lambda.SystemF.State

Methods

(==) :: Binding name -> Binding name -> Bool #

(/=) :: Binding name -> Binding name -> Bool #

type Globals name = Map name (TypedExpr name) Source #

unsafeRunTypecheck :: Typecheck name result -> TypecheckState name -> (result, TypecheckState name) Source #

unsafeExecTypecheck :: Typecheck name result -> TypecheckState name -> result Source #

mkTypecheckState :: [name] -> [name] -> TypecheckState name Source #

modifyGlobals :: (Globals name -> Globals name) -> Typecheck name () Source #

modifyVarUniques :: ([name] -> [name]) -> Typecheck name () Source #

modifyTyUniques :: ([name] -> [name]) -> Typecheck name () Source #

setGlobals :: Globals name -> Typecheck name () Source #

setVarUniques :: [name] -> Typecheck name () Source #

setTyUniques :: [name] -> Typecheck name () Source #