Checks that all the retrieved values for an item are the same. If they're
the same, it returns the equal value, otherwise it'll return null. A custom
equalityCheck can be provided for objects that don't override their
equality operator or need more sophisticated rules of equality (for example
if your K is a collection). TODO: have two functions; one to check is all
are equal, another to get the value?
Check if an iterable is equal to another iterable. Iterables are considered
equal if they have the same number of values and each of those values are
equal. A custom equalityCheck can be provided for objects that don't
override their equality operator or need to be deemed equal based on varying
application logic.