Lift
compare functions through the type constructor.
The function will usually be applied to comparison functions, but the
more general type ensures that the implementation uses them to compare
elements of the first container with elements of the second.