anchor.diff:  process_response(#request{msg = #rpbcountergetreq{}},
                    #rpbcountergetresp{value=Value}, State) ->
       {reply, {ok, Value}, State};
  +
  +process_response(#request{msg = #dtfetchreq{}}, #dtfetchresp{}=Resp,
  +                 State) ->
  +    {Type, Value, Context} = riak_pb_dt_codec:decode_fetch_response(Resp),
  +    Mod = riakc_datatype:module(Type),
  +    {reply, {ok, Mod:new(Value, Context)}, State};
  +
  +process_response(#request{msg = #dtupdatereq{return_body=RB,
  +                                             op=Op}}, #dtupdateresp{}=Resp,
  +                 State) ->
  +    OpType = riak_pb_dt_codec:operation_type(Op),
  +    Reply = case riak_pb_dt_codec:decode_update_response(Resp, OpType, RB) of
  +                ok -> ok;
  +                {ok, Key} -> {ok, Key};
  +                {OpType, Value, Context} ->
  +                    Mod = riakc_datatype:module(OpType),
  +                    {ok, Mod:new(Value, Context)};
  +                {Key, {OpType, Value, Context}} when is_binary(Key) ->
  +                    Mod = riakc_datatype:module(OpType),
  +                    {ok, Key, Mod:new(Value, Context)}
  +            end,
  +    {reply, Reply, State};
   
   process_response(#request{msg={tunneled,_MsgId}}, Reply, State) ->
       %% Tunneled msg response
  
positive.code:          get_search_schema/2, get_search_schema/3,
           create_search_schema/3, create_search_schema/4]).
  
  -deprecated({get_index,'_', eventually}).
  
  -type ctx() :: any().
  
negative.code: -include_lib("riak_pb/include/riak_pb_kv_codec.hrl").
  -include_lib("riak_pb/include/riak_search_pb.hrl").
  -include_lib("riak_pb/include/riak_yokozuna_pb.hrl").
  -include_lib("riak_pb/include/riak_dt_pb.hrl").
  %% @headerfile "riakc.hrl"
  -include("riakc.hrl").
  -behaviour(gen_server).
  