anchor.diff:    int get balance;
     Option<Tuple3<_IMapAVLNode<K, V>, K, V>> _removeMax();
     Option<_IMapAVLNode<K, V>> set(Order<K> order, K k, V v);
  +  _IMapAVLNode<K, V> modify(Order<K> order, K k, V f(V v), V dflt);
     _IMapAVLNode<K, dynamic/*=V2*/> map/*<V2>*/(/*=V2*/ f(V v));
   }
   
  
positive.code:   _IMapAVLNode<K, V> insert(Order<K> order, K k, V v) {
      final Ordering o = order.order(k, _k);
      if (o == Ordering.LT) {
        final _IMapAVLNode<K, V> newLeft = _left.insert(order, k, v);
        return new _NonEmptyIMapAVLNode/*<K, V>*/(_k, _v, newLeft, _right)._rebalance();
      } else if (o == Ordering.GT) {
        final _IMapAVLNode<K, V> newRight = _right.insert(order, k, v);
        return new _NonEmptyIMapAVLNode/*<K, V>*/(_k, _v, _left, newRight)._rebalance();
      } else {
        return new _NonEmptyIMapAVLNode(k, v, _left, _right);
  
negative.code: 
    IMapMonoid(this._vSemigroup);
  
    @override IMap<K, V> zero() => new IMap.empty();
    @override IMap<K, V> append(IMap<K, V> m1, IMap<K, V> m2) =>
        m2.pairs().foldLeft(m1, (IMap<K, V> p, Tuple2<K, V> kv) =>
            m1.get(kv.value1).fold(() =>
  