Module FlatCurry.FlexRigid

Author
Michael Hanus
Version
April 2005

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

Exported Datatypes:
Exported Functions:

Exported Datatypes


data FlexRigidResult

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

Constructors:

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

Known instances:


Exported Functions


getFlexRigid :: Expr -> FlexRigidResult  Deterministic 

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.