eliminate unions/intersections of one type during arg substitution