As for same, except that if the two values are Some options
containing references, they are unwrapped first and the contents are
compared by reference.
Compare two arbitrary values.
Compare two arbitrary values. If they are both references, use reference equality, otherwise use value equality.
Utility module for comparison routines.