Safe Haskell | None |
---|---|
Language | Haskell2010 |
Desugaring passes
- desugar :: (MonadSupply m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => [ExternsFile] -> [Module] -> m [Module]
Documentation
desugar :: (MonadSupply m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => [ExternsFile] -> [Module] -> m [Module] Source #
The desugaring pipeline proceeds as follows:
- Remove signed literals in favour of
negate
applications - Desugar object literals with wildcards into lambdas
- Desugar operator sections
- Desugar do-notation
- Desugar ado-notation
- Desugar top-level case declarations into explicit case expressions
- Desugar type declarations into value declarations with explicit type annotations
- Qualify any unqualified names and types
- Rebracket user-defined binary operators
- Introduce type synonyms for type class dictionaries
- Group mutually recursive value and data declarations into binding groups.