anchor.diff:  /**
    * Iterable wrapper that syncs to an underlying map.
    */
  -class _WrappedIterable<K, V> implements Iterable<V> {
  +class _WrappedIterable<K, V, C extends Iterable<V>> implements Iterable<V> {
     final K _key;
  -  final Map<K, Iterable<V>> _map;
  -  Iterable<V> _delegate;
  +  final Map<K, C> _map;
  +  C _delegate;
   
     _WrappedIterable(this._map, this._key, this._delegate);
   
  
positive.code:  * A multimap implementation that uses [Set]s to store the values associated
   * with each key.
   */
  class SetMultimap<K, V> extends _BaseMultimap<K, V> {
    SetMultimap() : super();
    Set<V> _create() => new Set<V>();
    Set<V> _wrap(Object key, Iterable<V> iterable) =>
        new _WrappedSet(_map, key, iterable);
    Set<V> operator [](Object key) => super[key];
  
negative.code: /**
   * Abstract base class for multimap implementations.
   */
  abstract class _BaseMultimap<K, V, C extends Iterable<V>>
      implements Multimap<K, V> {
    final Map<K, Iterable<V>> _map = new HashMap();
  
    // TODO(jacobr): for the following 6 methods we would prefer to specify that
  