| 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