fix some union/intersection impls