Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
This module contains the definition of type schemes of our intermediate language.
Synopsis
- data TypeScheme = TypeScheme {}
Documentation
data TypeScheme Source #
A type expression with explicitly introduced type variables.
Instances
Eq TypeScheme Source # | |
Defined in FreeC.IR.Syntax.TypeScheme (==) :: TypeScheme -> TypeScheme -> Bool Source # (/=) :: TypeScheme -> TypeScheme -> Bool Source # | |
Show TypeScheme Source # | |
Defined in FreeC.IR.Syntax.TypeScheme | |
Pretty TypeScheme Source # | Pretty instance for type schemes. |
Defined in FreeC.IR.Syntax.TypeScheme pretty :: TypeScheme -> Doc # prettyList :: [TypeScheme] -> Doc # | |
Similar TypeScheme Source # | Two type schemes are similar if their abstracted types are similar
under an extend Γ ∪ { α₁ ↦ β₁, …, αₙ ↦ βₙ } ⊢ τ ≈ τ' ———————————————————————————————————————————— Γ ⊢ forall α₁ … αₙ. τ ≈ forall β₁ … βₙ. τ' |
Defined in FreeC.IR.Similar similar' :: TypeScheme -> TypeScheme -> Renaming -> Bool | |
HasRefs TypeScheme Source # | Type schemes refer to the types it's type expression refers to but not to the type variables that are bound by the type scheme. |
Defined in FreeC.IR.Reference refSet :: TypeScheme -> RefSet | |
Parseable TypeScheme Source # | Parser for IR type schemes. |
Defined in FreeC.Frontend.IR.Parser parseIR' :: Parser TypeScheme Source # | |
ApplySubst Type TypeScheme Source # | Applies the given type substitution to a type scheme. |
Defined in FreeC.IR.Subst applySubst :: Subst Type -> TypeScheme -> TypeScheme Source # |