docs: function(k, v, version, opts) {
          var ctx = u.context(MEDIUM);
          logger.debugl(function() { return ['Invoke replaceWithVersion(msgId=%d,key=%s,value=%s,version=0x%s,opts=%s)',
                                             ctx.id, u.str(k), u.str(v), version.toString('hex'), JSON.stringify(opts)]; });
          var decoder = p.decodePrevOrElse(opts, p.hasPrevious, p.complete(p.hasSuccess));
          return futureKey(ctx, 0x09, k, p.encodeKeyValueVersion(k, v, version), decoder, opts);
        }