Safe Haskell | None |
---|
- data Pred
- data ClassHierarchy
- splitPreds :: Monad m => ClassHierarchy -> Set MetaVar -> Preds -> m (Preds, Preds)
- generalize :: [Pred] -> Rho -> Tc Sigma
- splitReduce :: Set MetaVar -> Set MetaVar -> [Pred] -> Tc ([MetaVar], [Pred], [Pred])
- topDefaults :: [Pred] -> Tc ()
- freeMetaVarsPreds :: Preds -> Set MetaVar
- simplify :: ClassHierarchy -> [Pred] -> [Pred]
- assertEntailment :: Preds -> Preds -> Tc ()
- assertEquivalant :: Preds -> Preds -> Tc ()
- type Preds = [Pred]
Documentation
splitPreds :: Monad m => ClassHierarchy -> Set MetaVar -> Preds -> m (Preds, Preds)Source
split predicates into ones that only mention metavars in the list vs other ones
topDefaults :: [Pred] -> Tc ()Source
simplify :: ClassHierarchy -> [Pred] -> [Pred]Source
assertEntailment :: Preds -> Preds -> Tc ()Source
assertEquivalant :: Preds -> Preds -> Tc ()Source