purescript-0.7.0.0: PureScript Programming Language Compiler

Safe HaskellNone
LanguageHaskell98

Language.PureScript.Sugar

Description

Desugaring passes

Synopsis

Documentation

desugar :: (Applicative m, MonadSupply m, MonadError MultipleErrors m) => [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 using the Prelude.Monad type class
  • 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.