I see from the code that unicode normalization is done. Is the idea also to do NaN normalization in floats? There are uses where this is not ideal and you don't want normalization at all. Will this be an option in the future? I'd actually argue the default case should be that otherwise it's easy to generate matching hashes for objects that will then behave differently when passed to certain functions.