Here are few notes I had about case optimizations I wanted to see. I'm not sure if they fit into known-case or not. case x of A => LA | _ => (case x of B => LB | C => LC | _ => LD) --> case x of A => LA | B => LB | C => LC | D => LD case x of A => L1 | B => L2 | _ => L1 --> case x of B => L2 | _ => L1 case x of A => L1 | B => L2 | C => L2 --> case x of A => L1 | _ => L2 if B and C are non-value-carrying