- Extract Concrete type from base class EquatableByValue that may be agreggated and reused by it and other types (i.e. favor composition over inheritance)
- Implement decorators: DictionaryByValue, StackByValue, QueueByValue
- Find better names for ....ByValue
- Profile perf and improve implementations if necessary