simplifyForceDefer (Case expr name alts) =
  Case (simplifyForceDefer expr) name $ simplifyAlt `fmap` alts where
    simplifyAlt (AltDefault expr) = AltDefault $ simplifyForceDefer expr
    simplifyAlt (AltLit lit expr) = AltLit lit $ simplifyForceDefer expr
    simplifyAlt (AltCon name names expr) = AltCon name names $ simplifyForceDefer expr
simplifyForceDefer (Case expr name alts) =
  Case (simplifyForceDefer expr) name $ simplifyAlt `fmap` alts where
    simplifyAlt (AltDefault expr) = AltDefault $ simplifyForceDefer expr
    simplifyAlt (AltLit lit expr) = AltLit lit $ simplifyForceDefer expr
    simplifyAlt (AltCon name names expr) = AltCon name names $ simplifyForceDefer expr
simplifyForceDefer (Case expr name alts) =
  Case (simplifyForceDefer expr) name $ simplifyAlt `fmap` alts where
    simplifyAlt (AltDefault expr) = AltDefault $ simplifyForceDefer expr
    simplifyAlt (AltLit lit expr) = AltLit lit $ simplifyForceDefer expr
    simplifyAlt (AltCon name names expr) = AltCon name names $ simplifyForceDefer expr