A somewhat stronger, slightly working version of intersection(). Still needs to handle wildcards correctly and union needs to work (and needs tests).