anchor.diff:  	when
   		Id				:: binary(),
   		Path			:: string(),
  -		Value			:: string().
  +		Value			:: string() | atom() | tuple().
   %% @doc replace the give value with given target path.
   patch_replace(Id, Path , Value) ->
   	[Target] = string:tokens(Path, "/"),
  
positive.code: 
  -spec patch_add(Id, Path, Value) -> ok
  	when
  		Id				:: binary(),
  		Path			:: string(),
  		Value			:: string().
  %% @doc add the give value with given target location.
  patch_add(Id, Path, Value) ->
  	[Target, Location] = string:tokens(Path, "/"),
  
negative.code: 		Result		:: {Op, Path, Value} | {error, Reason},
  		Op				:: string(),
  		Path			:: string(),
  		Value			:: string() | tuple() | atom(),
  		Reason		:: malformed_request.
  %% @doc validate elements in an operation object and return
  %% `op', `path' and `value' or reason for failed.
  