Top-1.7: Constraint solving framework employed by the Helium Compiler.

Safe HaskellSafe-Infered

Top.Interface.TypeInference

Contents

Description

 

Synopsis

Documentation

data ClassTI Source

Constructors

ClassTI 

Instances

Embedded ClassTI (Simple (TIState info) x m) (TIState info) 

deTI :: (Embedded ClassTI (s (StateFixT s m)) t, Monad m) => Select t (StateFixT s m) a -> StateFixT s m aSource

nextUnique :: HasTI m info => m IntSource

zipWithUniques :: HasTI m info => (Int -> a -> b) -> [a] -> m [b]Source

Instantiation and skolemization

addSkolem :: HasTI m info => ([Int], info, Tps) -> m ()Source

instantiateM :: (HasTI m info, Substitutable a) => Forall a -> m aSource

skolemizeTruly :: (HasTI m info, Substitutable a) => Forall a -> m aSource

skolemizeFaked :: (HasTI m info, Substitutable a) => info -> Tps -> Forall a -> m aSource

makeConsistent :: (HasTI m info, HasBasic m info, HasSubst m info) => m ()Source

First, make the substitution consistent. Then check the skolem constants(?)

checkSkolems :: (HasTI m info, HasSubst m info, HasBasic m info, TypeConstraintInfo info) => m ()Source