anchor.diff:  %% '''
   %% @end
   -spec replace_field(Json::json(), Query::field(), Value::json_value()) -> json_string().
  -replace_field(Json, Query, Value) when is_tuple(Json) ->
  -    replace_field_internal(erlson:from_json(encode(Json)), Query, Value);
  -replace_field(Json, Query, Value) when is_list(Json)->
  -    replace_field_internal(erlson:from_json(Json), Query, Value).
  +replace_field(Json, Query, Value) ->
  +    replace_field_internal(prepare_json(Json), Query, prepare_value(Value)).
   
   %% @doc
   %% Removes the field 'Query' from a JSON object
  
positive.code: %% '''
  %% @end
  -spec rm_field(Json::json(), Query::field()) -> json_string().
  rm_field(Json, Query) when is_tuple(Json) ->
      rm_field_internal(erlson:from_json(encode(Json)), Query);
  rm_field(Json, Query) when is_list(Json) ->
      rm_field_internal(erlson:from_json(Json), Query).
  
  %% @doc
  %% Sets a json attribute 'Attr' to 'Value'
  
negative.code: %% '''
  %% @end
  -spec add_field(Json::json(),Field::field(),Value::json_value()) -> json_string().
  add_field(Json, Field, Value) ->
      add_field_internal(prepare_json(Json), Field, prepare_value(Value)).
  
  
  %% @doc 
  %% TODO Should be removed after add_field/1 has been improved.
  