code: function Leaf__modify(edit, keyEq, shift, f, h, k, size) {
      if (keyEq(k, this.key)) {
          var _v = f(this.value);
          if (_v === this.value) return this;else if (_v === nothing) {
              --size.value;
              return empty;
          }
          if (canEditNode(edit, this)) {
              this.value = _v;
              return this;
          }
          return Leaf(edit, h, k, _v);
      }
      var v = f();
      if (v === nothing) return this;
      ++size.value;
      return mergeLeaves(edit, shift, this.hash, this, h, Leaf(edit, h, k, v));
  }
docs: /* Editing
  ****************************************************************************