Module FlatCurry.FlexRigid

This library provides a function to compute the rigid/flex status of a FlatCurry expression (right-hand side of a function definition).

Author: Michael Hanus

Version: April 2005

Summary of exported operations:

getFlexRigid :: Expr -> FlexRigidResult   
Computes the rigid/flex status of a FlatCurry expression.

Exported datatypes:


FlexRigidResult

Datatype for representing a flex/rigid status of an expression.

Constructors:

  • UnknownFR :: FlexRigidResult
  • ConflictFR :: FlexRigidResult
  • KnownFlex :: FlexRigidResult
  • KnownRigid :: FlexRigidResult

Exported operations:

getFlexRigid :: Expr -> FlexRigidResult   

Computes the rigid/flex status of a FlatCurry expression. This function checks all cases in this expression. If the expression has rigid as well as flex cases (which cannot be the case for source level programs but might occur after some program transformations), the result ConflictFR is returned.