Recursively optimize FlatAlt and Union even in the shallow case
Recursively optimize FlatAlt and Union even in the shallow case

There's no function composition involved, so the optimization can be
decided statically (i.e. before rendering).

quchen/prettyprinter,quchen/prettyprinter