purescript-0.12.0: PureScript Programming Language Compiler

Safe HaskellNone
LanguageHaskell2010

Language.PureScript.Sugar

Description

Desugaring passes

Synopsis

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.