redApp env (ECase e alts) es
  | length alts' == length alts = liftM (ECase e) (redAlts env alts')
  where alts'                   = [ a | Just a <- map (appAlt env es) alts ]
redApp env (ECase e alts) es
  | length alts' == length alts = liftM (ECase e) (redAlts env alts')
  where alts'                   = [ a | Just a <- map (appAlt env es) alts ]
redApp env (ECase e alts) es
  | length alts' == length alts = liftM (ECase e) (redAlts env alts')
  where alts'                   = [ a | Just a <- map (appAlt env es) alts ]