anchor.diff:           get_search_schema/2, get_search_schema/3,
            create_search_schema/3, create_search_schema/4]).
   
  +%% Datatypes API
  +-export([fetch_type/3, fetch_type/4,
  +         update_type/4, update_type/5,
  +         modify_type/5]).
  +
  +
   -deprecated({get_index,'_', eventually}).
   
   -type ctx() :: any().
  
positive.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").
  %% @headerfile "riakc.hrl"
  -include("riakc.hrl").
  -behaviour(gen_server).
  
negative.code: 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
  