hindley-milner-type-check-0.1.1.0: Type inference for Hindley-Milner based languages
Safe HaskellNone
LanguageHaskell2010

Type.Check.HM.Subst

Description

Capture-avoiding substitutions.

Synopsis

Documentation

class CanApply f where Source #

Class for application of substitutions to various types.

Methods

apply :: Ord v => Subst loc v -> f loc v -> f loc v Source #

Instances

Instances details
CanApply Type Source # 
Instance details

Defined in Type.Check.HM.Subst

Methods

apply :: Ord v => Subst loc v -> Type loc v -> Type loc v Source #

CanApply Signature Source # 
Instance details

Defined in Type.Check.HM.Subst

Methods

apply :: Ord v => Subst loc v -> Signature loc v -> Signature loc v Source #

CanApply TypeError Source # 
Instance details

Defined in Type.Check.HM.TypeError

Methods

apply :: Ord v => Subst loc v -> TypeError loc v -> TypeError loc v Source #

CanApply Context Source # 
Instance details

Defined in Type.Check.HM.Infer

Methods

apply :: Ord v => Subst loc v -> Context loc v -> Context loc v Source #

CanApply (Term prim) Source # 
Instance details

Defined in Type.Check.HM.Term

Methods

apply :: Ord v => Subst loc v -> Term prim loc v -> Term prim loc v Source #

CanApply (TyTerm prim) Source # 
Instance details

Defined in Type.Check.HM.TyTerm

Methods

apply :: Ord v => Subst loc v -> TyTerm prim loc v -> TyTerm prim loc v Source #

newtype Subst loc v Source #

Substitutions of type variables for monomorphic types.

Constructors

Subst 

Fields

Instances

Instances details
(Eq v, Eq loc) => Eq (Subst loc v) Source # 
Instance details

Defined in Type.Check.HM.Subst

Methods

(==) :: Subst loc v -> Subst loc v -> Bool #

(/=) :: Subst loc v -> Subst loc v -> Bool #

(Ord v, Ord loc) => Ord (Subst loc v) Source # 
Instance details

Defined in Type.Check.HM.Subst

Methods

compare :: Subst loc v -> Subst loc v -> Ordering #

(<) :: Subst loc v -> Subst loc v -> Bool #

(<=) :: Subst loc v -> Subst loc v -> Bool #

(>) :: Subst loc v -> Subst loc v -> Bool #

(>=) :: Subst loc v -> Subst loc v -> Bool #

max :: Subst loc v -> Subst loc v -> Subst loc v #

min :: Subst loc v -> Subst loc v -> Subst loc v #

Ord v => Semigroup (Subst loc v) Source # 
Instance details

Defined in Type.Check.HM.Subst

Methods

(<>) :: Subst loc v -> Subst loc v -> Subst loc v #

sconcat :: NonEmpty (Subst loc v) -> Subst loc v #

stimes :: Integral b => b -> Subst loc v -> Subst loc v #

Ord v => Monoid (Subst loc v) Source # 
Instance details

Defined in Type.Check.HM.Subst

Methods

mempty :: Subst loc v #

mappend :: Subst loc v -> Subst loc v -> Subst loc v #

mconcat :: [Subst loc v] -> Subst loc v #

delta :: v -> Type loc v -> Subst loc v Source #

Singleton substitution.

applyToVar :: Ord v => Subst loc v -> v -> Maybe (Type loc v) Source #