I think the preferred way is to mix in the hash of the type itself, e.g. hash(a.t, hash(A, h)). But if you have code that relies on the hash being different then you are likely to have a bug since hash collisions are possible.
For sure, I’m just using it as a poor man’s checksum; I dump calculations to file with a filename that depends on the basis set employed, and have no problem that the calculation has to be redone when the hash value changes (i.e. new Julia versions). I just needed to also be able to disambiguate between different basis set types, and not just their locations.