This library provides a function to compute the rigid/flex status of a FlatCurry expression (right-hand side of a function definition).
data FlexRigidResult
Datatype for representing a flex/rigid status of an expression.
Constructors:
UnknownFR
:: FlexRigidResult
ConflictFR
:: FlexRigidResult
KnownFlex
:: FlexRigidResult
KnownRigid
:: FlexRigidResult
Known instances:
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.