Safe Haskell | None |
---|---|
Language | Haskell98 |
Type class entailment
- type Context = Map (Maybe ModuleName) (Map (Qualified (ProperName ClassName)) (Map (Qualified Ident) TypeClassDictionaryInScope))
- replaceTypeClassDictionaries :: (MonadError MultipleErrors m, MonadWriter MultipleErrors m, MonadSupply m) => Bool -> ModuleName -> Expr -> m (Expr, [(Ident, Constraint)])
Documentation
type Context = Map (Maybe ModuleName) (Map (Qualified (ProperName ClassName)) (Map (Qualified Ident) TypeClassDictionaryInScope)) Source
The Context
tracks those constraints which can be satisfied.
replaceTypeClassDictionaries :: (MonadError MultipleErrors m, MonadWriter MultipleErrors m, MonadSupply m) => Bool -> ModuleName -> Expr -> m (Expr, [(Ident, Constraint)]) Source
Replace type class dictionary placeholders with inferred type class dictionaries