lambda-calculator-3.0.0: A lambda calculus interpreter
Safe HaskellNone
LanguageHaskell2010

Language.Lambda.SystemF.TypeCheck

Documentation

type UniqueSupply n = [n] Source #

type Context' n t = Map n t Source #

typecheck :: (Ord name, Pretty name) => SystemFExpr name name -> Typecheck name (Ty name) Source #

typecheckVar :: Ord name => name -> Typecheck name (Ty name) Source #

typecheckAbs :: (Ord name, Pretty name) => name -> Ty name -> SystemFExpr name name -> Typecheck name (Ty name) Source #

typecheckApp :: (Ord name, Pretty name) => SystemFExpr name name -> SystemFExpr name name -> Typecheck name (Ty name) Source #

typecheckTyAbs :: (Ord name, Pretty name) => name -> SystemFExpr name name -> Typecheck name (Ty name) Source #

typecheckTyApp :: (Ord name, Pretty name) => SystemFExpr name name -> Ty name -> Typecheck name (Ty name) Source #

unique :: Typecheck name name Source #

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

substituteTy :: Eq name => Ty name -> name -> Ty name -> Ty name Source #