We may achieve this by reimplementing the old mechanism that finds the least common abstract type for `T` and `U` separatedly.