Check https://www.dartlang.org/docs/dart-up-and-running/contents/ch02.html#op-equality for details