curry-frontend-1.0.1: Compile the functional logic language Curry to several intermediate formats

Copyright(c) 2003 Wolfgang Lux
Martin Engelke
2011 - 2015 Björn Peemöller
2016 Finn Teegen
LicenseBSD-3-clause
Maintainerbjp@informatik.uni-kiel.de
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Transformations.Simplify

Description

After desugaring the source code, but before lifting local declarations, the compiler performs a few simple optimizations to improve the efficiency of the generated code. In addition, the optimizer replaces pattern bindings with simple variable bindings and selector functions.

Currently, the following optimizations are implemented:

  • Under certain conditions, inline local function definitions.
  • Remove unused declarations.
  • Compute minimal binding groups for let expressions.
  • Remove pattern bindings to constructor terms
  • Inline simple constants.

Documentation