Switch the coercion order in flattening
Currently we have
(xi, co) <- flatten ty
==>
co :: xi ~ ty
We think it'd be a lot easier if
co :: ty ~ xi
that is, from unflattened to flattened type.
This ticket is to suggest trying this refactoring.