e242ad955b
Previously, if user compares an `it<String, Int>` with `String`, the checker reports it since the flattened types `[String, Int, Int]` are incompatible. But technically, before flattening, the intersection type actually contain the other side, so they should really be compatible.