code: function RedisWrapper(opt, key) {
  	return {
  		_promise: new Promise(
  			(resolve, reject) => opt.redis.hget(
  				opt.namespace,
  				key,
  				(err, json) => {
  					if (err) {
  						reject(err);
  						return;
  					}
  					try {
  						const val = opt.deserialize(json);
  						resolve(val);
  					} catch (e) {
  						reject(e);
  					}
  				}
  			),
  			[]
  		),
  		tree: []
  	};
  }
docs: /* Gets a "root value" from Redis (i.e. one stored in a Redis hash),
  deserializes it from JSON, and returns a promise.
  Also contains a "tree" property, which is used when navigating the
  deserialized object.