When mathematicians invent three ways to say the same things chances are it's an important concept. Equivalence relations, partitions and functions are one example of three ways to say the same fundamental idea. We seem to lack precise language for what that concept is but by using any one of these three data types we have a tools to get work done. Equality is amongst the most subtle aspects of data type design.