The Equal Sign

If we begin with nothing, where does the equal sign = come from?

Equality is the absence of distinction.

Identity is such a fundamental Smalltalk notion that if you override the `==` method Smalltalk ignores your override. By contrast, you can override the `=` method at will.

> Therefore, in your own classes, the definition of equality – “indistinguishability” – is entirely up to you. As a case in point, Smalltalk's designers decided on their own defi­nition of equality for strings, namely that two strings are equal if they contain the same characters in the same order. But before you override equality in your classes, read the upcoming section "Overriding equality."

~

The `=` operator in Elixir is a bit different from the ones we see in other languages: […] (Pattern matching) ⇒ match

is done by reference, not value. For two objects to be equal they have to be exactly the same object. Though, when type casting or type coercion comes into play objects get some interesting behavior.