curry-base-0.4.2: Functions for manipulating Curry programs

Copyright(c) 2009, Holger Siegel
LicenseBSD-3-clause
Maintainerbjp@informatik.uni-kiel.de
Stabilityexperimental
Portabilitynon-portable (FlexibleContexts, PatternGuards)
Safe HaskellNone
LanguageHaskell2010

Curry.ExtendedFlat.TypeInference

Description

The function adjustTypeInfos annotates every declaration, identifier, and application with exact type information.

This information is derived from the more general information found in the AST.

Synopsis

Documentation

adjustTypeInfo :: Prog -> Prog Source #

For every identifier that occurs in the right hand side of a declaration, the polymorphic type variables in its type label are replaced by concrete types.

labelVarsWithTypes :: Prog -> Prog Source #

All identifiers that do not have type annotations are labelled with new type variables

uniqueTypeIndices :: Prog -> Prog Source #

Type variables that occur in the type annotations of QNames are replaced by newly introduced type variables, so that further unification steps will not interfere with parametric polymorphism

genEquations :: Prog -> Prog Source #

Specialises all type variables (part of adjustTypeInfo)