How to use TrieMap without Hash.hash

Claudio, this and post (Field hash is deprecated) are still the first result when querying this problem, and unfortunately no example of a bespoke function is given (that can use >32 bits Nat).

I looked into Zhenya lib and this bespoke function seems to work:

public func hashNat(key: Nat): Nat32 {
    var hash = Prim.intToNat64Wrap(key);

    hash := hash >> 30 ^ hash *% 0xbf58476d1ce4e5b9;
    hash := hash >> 27 ^ hash *% 0x94d049bb133111eb;

    Prim.nat64ToNat32(hash >> 31 ^ hash & 0x3fffffff);
  };

(Source: motoko-hash-map/src/Set/utils.mo at 428f4a7f8c7ca811de0a6afb3f54329bbd8750fd · ZhenyaUsenko/motoko-hash-map · GitHub)

Do you see anything wrong in using it as a temporary solution, while we wait for Base library to provide a solution to this problem?