Safe Haskell | None |
---|
This module implements the desugaring pass which creates type synonyms for type class dictionaries and dictionary expressions for type class instances.
- desugarTypeClasses :: [Module] -> Either String [Module]
- mkDictionaryValueName :: ModuleName -> Qualified ProperName -> [Type] -> Either String Ident
- mkDictionaryEntryName :: ModuleName -> Qualified ProperName -> [Type] -> Ident -> Desugar Ident
Documentation
desugarTypeClasses :: [Module] -> Either String [Module]Source
Add type synonym declarations for type class dictionary types, and value declarations for type class instance dictionary expressions.
mkDictionaryValueName :: ModuleName -> Qualified ProperName -> [Type] -> Either String IdentSource
Generate a name for a type class dictionary, based on the module name, class name and type name
mkDictionaryEntryName :: ModuleName -> Qualified ProperName -> [Type] -> Ident -> Desugar IdentSource
Generate a name for a type class dictionary member, based on the module name, class name, type name and member name