anchor.diff:    bool isValidKey(Object o) => o is List<E>;
   }
   
  -abstract class _UnorderedEquality<T> implements Equality<T> {
  +abstract class _UnorderedEquality<E, T extends Iterable<E>>
  +    implements Equality<T> {
     final Equality<E> _elementEquality;
   
     const _UnorderedEquality(this._elementEquality);
  
positive.code: 
    int hash(T e) {
      int hash = 0;
      for (var element in e) {
        int c = _elementEquality.hash(element);
        hash = (hash + c) & _HASH_MASK;
      }
  
negative.code:  * and the elements of one set can be paired with the elements
   * of the other iterable, so that each pair are equal.
   */
  class UnorderedIterableEquality<E> extends _UnorderedEquality<E, Iterable<E>> {
    const UnorderedIterableEquality(
        [Equality<E> elementEquality = const DefaultEquality()])
        : super(elementEquality);
  