https://medium.com/better-programming/functional-programming-using-the-eq-type-class-to-check-for-equality-b7e9b989063a