Safe Haskell | Safe-Infered |
---|
- data ClassTI = ClassTI
- deTI :: (Embedded ClassTI (s (StateFixT s m)) t, Monad m) => Select t (StateFixT s m) a -> StateFixT s m a
- class Monad m => HasTI m info | m -> info where
- getUnique :: m Int
- setUnique :: Int -> m ()
- setTypeSynonyms :: OrderedTypeSynonyms -> m ()
- getTypeSynonyms :: m OrderedTypeSynonyms
- getSkolems :: m [([Int], info, Tps)]
- setSkolems :: [([Int], info, Tps)] -> m ()
- allTypeSchemes :: m (Map Int (Scheme Predicates))
- getTypeScheme :: Int -> m (Scheme Predicates)
- storeTypeScheme :: Int -> Scheme Predicates -> m ()
- nextUnique :: HasTI m info => m Int
- zipWithUniques :: HasTI m info => (Int -> a -> b) -> [a] -> m [b]
- addSkolem :: HasTI m info => ([Int], info, Tps) -> m ()
- instantiateM :: (HasTI m info, Substitutable a) => Forall a -> m a
- skolemizeTruly :: (HasTI m info, Substitutable a) => Forall a -> m a
- skolemizeFaked :: (HasTI m info, Substitutable a) => info -> Tps -> Forall a -> m a
- getSkolemSubstitution :: HasTI m info => m MapSubstitution
- makeConsistent :: (HasTI m info, HasBasic m info, HasSubst m info) => m ()
- checkSkolems :: (HasTI m info, HasSubst m info, HasBasic m info, TypeConstraintInfo info) => m ()
- skolemVersusConstantLabel :: ErrorLabel
- skolemVersusSkolemLabel :: ErrorLabel
- escapingSkolemLabel :: ErrorLabel
- replaceSchemeVar :: HasTI m info => Sigma Predicates -> m (Scheme Predicates)
- findScheme :: HasTI m info => Sigma Predicates -> m (Scheme Predicates)
Documentation
deTI :: (Embedded ClassTI (s (StateFixT s m)) t, Monad m) => Select t (StateFixT s m) a -> StateFixT s m aSource
class Monad m => HasTI m info | m -> info whereSource
setUnique :: Int -> m ()Source
setTypeSynonyms :: OrderedTypeSynonyms -> m ()Source
getTypeSynonyms :: m OrderedTypeSynonymsSource
getSkolems :: m [([Int], info, Tps)]Source
setSkolems :: [([Int], info, Tps)] -> m ()Source
allTypeSchemes :: m (Map Int (Scheme Predicates))Source
getTypeScheme :: Int -> m (Scheme Predicates)Source
storeTypeScheme :: Int -> Scheme Predicates -> m ()Source
nextUnique :: HasTI m info => m IntSource
zipWithUniques :: HasTI m info => (Int -> a -> b) -> [a] -> m [b]Source
Instantiation and skolemization
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
getSkolemSubstitution :: HasTI m info => m MapSubstitutionSource
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
replaceSchemeVar :: HasTI m info => Sigma Predicates -> m (Scheme Predicates)Source
findScheme :: HasTI m info => Sigma Predicates -> m (Scheme Predicates)Source