-- expression.
| LetBody -- ^ The expression is the body of a
-- let expression
+ | LambdaBody -- ^ The expression is the body of a
+ -- lambda abstraction
| Other -- ^ Another context
-
+ deriving Eq
-- | Transforms a CoreExpr and keeps track if it has changed.
type Transform = [CoreContext] -> CoreSyn.CoreExpr -> TransformMonad CoreSyn.CoreExpr