docs: function (binding, subpath, preserve, newValue) {
        var args = Util.resolveArgs(
          arguments,
          function (x) { return x instanceof Binding ? 'binding' : null; },
          function (x) { return Util.canRepresentSubpath(x) ? 'subpath' : null; },
          function (x) { return typeof x === 'boolean' ? 'preserve' : null; },
          'newValue'
        );
        return this.update(args.binding, args.subpath, merge.bind(null, args.preserve, args.newValue));
      }