Agreed.
A possible improvement would be to add `autohash` helper to `hashes` module. So we avoid automating object identity and making it easier for people to auto generate hashes for cases when it make sense. proc autohash*[T: tuple|object](o: T): Hash = var h: Hash = 0 for f in o.fields: h = h !& f.hash !$h proc hash*(v: Something): Hash = v.autohash Run