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

Language.PureScript.CoreImp.Optimizer

Description

This module optimizes code in the simplified-JavaScript intermediate representation.

The following optimizations are supported:

  • Collapsing nested blocks
  • Tail call elimination
  • Inlining of (>>=) and ret for the Eff monad
  • Removal of unnecessary thunks
  • Eta conversion
  • Inlining variables
  • Inline Prelude.($), Prelude.(#), Prelude.(++), Prelude.(!!)
  • Inlining primitive JavaScript operators
Synopsis

Documentation

optimize :: forall m. MonadSupply m => [Text] -> [[AST]] -> m [[AST]] Source #

Apply a series of optimizer passes to simplified JavaScript code