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

Copyright(c) 2011 Björn Peemöller (bjp@informatik.uni-kiel.de)
LicenseBSD-3-clause
Maintainerbjp@informatik.uni-kiel.de
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Transformations

Description

This module subsumes the different transformations of the source code.

Synopsis

Documentation

qual :: CompEnv (Module a) -> CompEnv (Module a) Source #

Fully qualify used constructors and functions.

derive :: CompEnv (Module PredType) -> CompEnv (Module PredType) Source #

Automatically derive instances.

desugar :: CompEnv (Module PredType) -> CompEnv (Module PredType) Source #

Remove any syntactic sugar, changes the value environment.

insertDicts :: CompEnv (Module PredType) -> CompEnv (Module Type) Source #

Insert dictionaries, changes the type constructor and value environments.

removeNewtypes :: CompEnv (Module Type) -> CompEnv (Module Type) Source #

Remove newtype constructors.

simplify :: CompEnv (Module Type) -> CompEnv (Module Type) Source #

Simplify the source code, changes the value environment.

lift :: CompEnv (Module Type) -> CompEnv (Module Type) Source #

Lift local declarations, changes the value environment.

ilTrans :: CompEnv (Module Type) -> CompEnv Module Source #

Translate into the intermediate language

transType :: Type -> Type Source #

Translate a type into its representation in the intermediate language

completeCase :: CompEnv Module -> CompEnv Module Source #

Add missing case branches