when we trickle down the object properties, we want to drill down so we want to choose the property to drill down (by its type) since sometimes we don't need to compute the actual hash code for the property (for example: a class, or an enumeration) while computing the hash, just their path.
This method can be used to debug hashing.
We have tried to come up with a more robust way to debug hash, such as to construct the hash tree, but that's not quite feasible for the following reasons:
get hashCodeand expand the property if it hashashCodethen we might risk getting into an infinite loopget hashCodeis in order to reconcile the differences between metamodels and protocol models. If we only compare metamodels to protocol models for example, the problem might be less complicated, but we're dealing with 2 hash systems (in a way)Mappingand then choose which part of the hash we would like toexplore