<, =<, =, >= or >. If
Cmp is unbound we check whether < or > hold or else bind Cmp to
=.
When comparing for equality (=), the versions are considered equal
if they compare equal up to the detail level of the least specified.
E.g, '9.1.2' is considered equal to '9.1'.