Move the with-expression all the way down.

There is no reason why it should be anywhere up, as it's part of the
type information:

	const z = a ? (b with ...) : (c with ...);

This would not be possible to do during run-time, as both the b and c
term have to unify to the same type.