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: 
    @override IMap<K, dynamic/*=V2*/> map/*<V2>*/(/*=V2*/ f(V v)) => new IMap(_order, _tree.map(f));
  
    Map<K, V> toMap() => foldLeftKV(new Map<K, V>(), (Map<K, V> p, K k, V v) => p..[k] = v);
  
    @override bool operator ==(other) => identical(this, other) || (other is IMap && _order == other._order && pairs() == other.pairs());
  
  
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(() =>
  