lambda-calculator-2.0.0: A lambda calculus interpreter

Safe HaskellSafe
LanguageHaskell2010

Language.SystemF.TypeCheck

Documentation

type UniqueSupply n = [n] Source #

type Context n t = Map n t Source #

typecheck :: (Ord n, Eq n, PrettyPrint n) => UniqueSupply n -> Context n (Ty n) -> SystemFExpr n n -> Either String (Ty n) Source #

tcVar :: (Ord n, Eq n, PrettyPrint n) => UniqueSupply n -> Context n (Ty n) -> n -> Either String (Ty n) Source #

tcAbs :: (Ord n, Eq n, PrettyPrint n) => UniqueSupply n -> Context n (Ty n) -> n -> Ty n -> SystemFExpr n n -> Either String (Ty n) Source #

tcApp :: (Ord n, Eq n, PrettyPrint n) => UniqueSupply n -> Context n (Ty n) -> SystemFExpr n n -> SystemFExpr n n -> Either String (Ty n) Source #

tcTyAbs :: (Ord n, Eq n, PrettyPrint n) => UniqueSupply n -> Context n (Ty n) -> n -> SystemFExpr n n -> Either String (Ty n) Source #

tcTyApp :: (Ord n, Eq n, PrettyPrint n) => UniqueSupply n -> Context n (Ty n) -> SystemFExpr n n -> Ty n -> Either String (Ty n) Source #

sub :: Eq n => n -> Ty n -> SystemFExpr n n -> SystemFExpr n n Source #

subTy :: Eq n => n -> Ty n -> Ty n -> Ty n Source #