anchor.diff:        o.item5 == item5;
   
     @override
  -  int get hashCode =>
  -      _hash([item1.hashCode, item2.hashCode, item3.hashCode, item4.hashCode, item5.hashCode]);
  -}+  int get hashCode => _hash([
  +        item1.hashCode,
  +        item2.hashCode,
  +        item3.hashCode,
  +        item4.hashCode,
  +        item5.hashCode
  +      ]);
  +}
  
positive.code:   int get hashCode => _hash([item1.hashCode, item2.hashCode]);
  }
  
  class Tuple3<T1, T2, T3> {
    final T1 item1;
    final T2 item2;
    final T3 item3;
  
    const Tuple3(this.item1, this.item2, this.item3);
  
    Tuple3<T1, T2, T3> withItem1(T1 v) {
      return new Tuple3<T1, T2, T3>(v, item2, item3);
    }
  
    Tuple3<T1, T2, T3> withItem2(T2 v) {
      return new Tuple3<T1, T2, T3>(item1, v, item3);
    }
  
    Tuple3<T1, T2, T3> withItem3(T3 v) {
      return new Tuple3<T1, T2, T3>(item1, item2, v);
    }
  
negative.code: 
  part of tuple;
  
  /// Represents a 2-tuple, or pair.
  class Tuple2<T1, T2> {
    /// Returns the first item of the tuple
    final T1 item1;
  
    /// Returns the second item of the tuple
    final T2 item2;
  
    /// Creates a new tuple value with the specified items.
    const Tuple2(this.item1, this.item2);
  
    /// Returns a tuple with the first item set to the specified value.
    Tuple2<T1, T2> withItem1(T1 v) {
      return new Tuple2<T1, T2>(v, item2);
    }
  
    /// Returns a tuple with the second item set to the specified value.
    Tuple2<T1, T2> withItem2(T2 v) {
      return new Tuple2<T1, T2>(item1, v);
    }
  