anchor.diff:     * `combine(leftvalue, rightvalue)` where `leftvalue` is the value bound to
      * `key` in `this` and `rightvalue` is the one bound to `key` in [other].
      *
  -   *     {'a': 1}.union({'b': 2}) == {'a': 1, 'b': 2}
  -   *     {'a': 1}.union({'a': 3, 'b': 2}) == {'a': 3, 'b': 2}
  -   *     {'a': 1}.union({'a': 3, 'b': 2}, (x,y) => x + y) == {'a': 4, 'b': 2}
  -   *
  -   * Note that [union] is commutative if and only if [combine] is provided and
  -   * if it is commutative.
  +   *     var mapA = PersistentMap.fromMap({'a': 1});
  +   *     var mapB = PersistentMap.fromMap({'b': 2});
  +   *     var mapAB = PersistentMap.fromMap({'a': 3, 'b': 2});
  +   *     mapA.union(mapB) // returns {'a': 1, 'b': 2}
  +   *     mapA.union(mapAB) // returns {'a': 3, 'b': 2}
  +   *     mapA.union(mapAB, (x,y) => x + y) // returns {'a': 4, 'b': 2}
      */
     ReadMap<K, V>
         union(ReadMap<K, V> other, [V combine(V left, V right)]);
  
positive.code:    * `leftvalue` is the value bound to `key` in `this` and `rightvalue` is the
     * one bound to `key` in [other].
     *
     *     {'a': 1}.intersection({'b': 2}) == {}
     *     {'a': 1}.intersection({'a': 3, 'b': 2}) == {'a': 3}
     *     {'a': 1}.intersection({'a': 3, 'b': 2}, (x,y) => x + y) == {'a': 4}
     *
     * Note that [intersection] is commutative if and only if [combine] is
     * provided and if it is commutative.
     */
    ReadMap<K, V>
        intersection(ReadMap<K, V> other, [V combine(V left, V right)]);
  
negative.code: }
  
  /**
   * A persistent map, binding keys of type [K] to values of type [V]. Null
   * values are supported but null keys are not.
   *
   * Persistent data structure is an immutable structure, that provides effective
  