It generally holds that if two hashable objects are equal, their hashes must be the same. It seems that python builtin `float` and `symengine.Float` violate this rule: ```python from symengine import Float Float(2.2) == 2.2 # True hash(Float(2.2)) == hash(2.2) # False ``` Shouldn't the hash of a `symengine.Float` just use the python `float`'s hash?