Ideal lenient default unification tries to maximize the amount of information of the result, subsuming the result of forced unification.
ideal lenient default unification tries to generate a result as similar as possible to the result of forced unification such that the result is defined in the type hierarchy without the top type.