Making union types disjoint