free-compiler-0.3.0.0: A Haskell to Coq compiler.

Safe HaskellSafe
LanguageHaskell2010

FreeC.IR.Syntax.TypeScheme

Description

This module contains the definition of type schemes of our intermediate language.

Synopsis

Documentation

data TypeScheme Source #

A type expression with explicitly introduced type variables.

Instances
Eq TypeScheme Source # 
Instance details

Defined in FreeC.IR.Syntax.TypeScheme

Show TypeScheme Source # 
Instance details

Defined in FreeC.IR.Syntax.TypeScheme

Pretty TypeScheme Source #

Pretty instance for type schemes.

Instance details

Defined in FreeC.IR.Syntax.TypeScheme

Similar TypeScheme Source #

Two type schemes are similar if their abstracted types are similar under an extend Renaming that maps the corresponding type arguments to each other.

    Γ ∪ { α₁ ↦ β₁, …, αₙ ↦ βₙ } ⊢ τ ≈ τ'
————————————————————————————————————————————
 Γ ⊢ forall α₁ … αₙ. τ ≈ forall β₁ … βₙ. τ'
Instance details

Defined in FreeC.IR.Similar

Methods

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.

Instance details

Defined in FreeC.IR.Reference

Methods

refSet :: TypeScheme -> RefSet

Parseable TypeScheme Source #

Parser for IR type schemes.

Instance details

Defined in FreeC.Frontend.IR.Parser

Methods

parseIR' :: Parser TypeScheme Source #

ApplySubst Type TypeScheme Source #

Applies the given type substitution to a type scheme.

Instance details

Defined in FreeC.IR.Subst