anchor.diff:      }
       // Maybe implement a splay-method that can splay the minimum without
       // performing comparisons.
  -    splay_(node.key);
  +    _splay(node.key);
       return node.key;
     }
   
  
positive.code:     bool visit(SplayTreeNode node) {
        if (node == null) return false;
        if (node.value == value) return true;
        return visit(node.left) || visit(node.right);
      }
      return visit(_root);
    }
  
    Collection<K> get keys {
      List<K> list = new List<K>();
      forEach((K k, V v) { list.add(k); });
      return list;
    }
  
    Collection<V> get values {
      List<V> list = new List<V>();
      forEach((K k, V v) { list.add(v); });
      return list;
    }
  
    String toString() {
      return Maps.mapToString(this);
  
negative.code:   }
  
    void forEach(void f(K key, V value)) {
      Iterator<SplayTreeNode<K, V>> nodes =
          new _SplayTreeNodeIterator<K, V>(this);
      while (nodes.moveNext()) {
        SplayTreeNode<K, V> node = nodes.current;
        f(node.key, node.value);
      }
    }
  
  