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
getFlexRigid
:: Expr -> FlexRigidResult
Computes the rigid/flex status of a FlatCurry expression. |
Datatype for representing a flex/rigid status of an expression.
Constructors:
UnknownFR
:: FlexRigidResult
ConflictFR
:: FlexRigidResult
KnownFlex
:: FlexRigidResult
KnownRigid
:: 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. |