UInt64 hash value for this object.
This method must have the property that
a == b implies
a.hash == b.hash.
The hash value is used along with
== by the
Hash class to determine if two objects
reference the same hash key.
Subclasses must not override this method. Instead, they must define
though usually the macro
def_hash can be used to generate this method.