anchor.diff:        throw new ArgumentError('Negative number of occurences');
       } else if (occurences > 0) {
         _container[element] = this[element] + occurences;
  +      _length += occurences;
       }
     }
   
  
positive.code:   /**
     * Removes all elements from the receiver.
     */
    void clear() => _container.clear();
  
    /**
     * Gets the number of occurences of an [element].
  
negative.code:   /**
     * Creates an empty [Multiset].
     */
    factory Multiset() => new Multiset<E>._(new Map<E, int>(), 0);
  
    /**
     * Creates an empty identity [Multiset].
     */
    factory Multiset.identity() => new Multiset<E>._(new Map<E, int>.identity(), 0);
  
    /**
     * Creates a multiset that contains all elements of [other].
     */
    factory Multiset.from(Iterable<E> other) {
      if (other is Multiset<E>) {
        return new Multiset<E>._(new Map.from(other._container), other._length);
      } else {
        return new Multiset<E>()..addAll(other);
      }
    }
  
    /**
     * The backing container of the set.
     */
    final Map<E, int> _container;
  
    /**
     * The cached number of elements.
     */
    int _length;
  
    Multiset._(this._container, this._length);
  
    /**
     * Adds [element] to the receiver [occurrences] number of times.
  