redCaseStrLit env l@(LStr _ str) alts@((PCon (Prim CONS _),e):_)
                                = redCase env (foldr (\x y -> EAp cons [chr x,y]) nil str) alts
   where chr x = ELit (LChr Nothing x)
         cons = ECon (prim CONS)
         nil = ECon (prim NIL)
redCaseStrLit env l@(LStr _ str) alts@((PCon (Prim CONS _),e):_)
                                = redCase env (foldr (\x y -> EAp cons [chr x,y]) nil str) alts
   where chr x = ELit (LChr Nothing x)
         cons = ECon (prim CONS)
         nil = ECon (prim NIL)
redCaseStrLit env l@(LStr _ str) alts@((PCon (Prim CONS _),e):_)
                                = redCase env (foldr (\x y -> EAp cons [chr x,y]) nil str) alts
   where chr x = ELit (LChr Nothing x)
         cons = ECon (prim CONS)
         nil = ECon (prim NIL)