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

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

Transformations.Lift

Description

After desugaring and simplifying the code, the compiler lifts all local function declarations to the top-level keeping only local variable declarations. The algorithm used here is similar to Johnsson's, consisting of two phases. First, we abstract each local function declaration, adding its free variables as initial parameters and update all calls to take these variables into account. Second, all local function declarations are collected and lifted to the top-level.

Documentation