anchor.diff:  
   -type index() :: binary().
   -type docid() :: binary().
  +-type idxdoc() :: tuple(). % #riak_indexed_doc{}
   
   -type search_fields() :: [{search_field(),search_data()}].
   -type search_field() :: string().
  
positive.code:     SearchClient:index_terms(Postings),
  
      %% Store the indexed_doc for next time
      riak_indexed_doc:put(RiakClient, NewIdxDoc),
      ok.
  
  %% Remove any old index entries if they exist
  -spec remove_old_entries(riak_client(), search_client(), index(), docid()) -> ok.
  
negative.code:                          {user_funterm(), args()}) -> {funterm(), args()}.
  validate_extractor(undefined) ->
      {?DEFAULT_EXTRACTOR, ?DEFAULT_ARGS};
  validate_extractor({struct, JsonExtractor}) ->
      Lang = proplists:get_value(<<"language">>, JsonExtractor),    
      validate_extractor(erlify_json_funterm(Lang, JsonExtractor));
  validate_extractor({FunTerm, Args}) when is_tuple(FunTerm) ->
      {validate_funterm(FunTerm), Args};
  validate_extractor(FunTerm) ->
  