purescript-0.15.8: PureScript Programming Language Compiler
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.PureScript.Sugar

Description

Desugaring passes

Synopsis

Documentation

desugar :: MonadSupply m => MonadError MultipleErrors m => MonadWriter MultipleErrors m => MonadState (Env, UsedImports) 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 newtypes for type class dictionaries and value declarations for instances
  • Group mutually recursive value and data declarations into binding groups.