more robust syntactic predicate
Don't eagerly canonicalize union/intersection types!
(in order to allow caching of resolveAliases())