Simplify and improve type accesses through intersections and unions