force canonicalization in covers()
(not sure if this is *really* necessary)
fix #538 by improving assignability analysis for intersection types