anchor.diff:  char_value([{"value", Value} | T], Acc)
   		when is_integer(Value); is_float(Value);
   		is_list(Value); is_boolean(Value) ->
  +erlang:display({?MODULE, ?LINE, Value}),
   	char_value(T, Acc#char_value{value = Value});
   char_value([{"value", {struct, _} = Value} | T], Acc) ->
  +erlang:display({?MODULE, ?LINE, Value}),
   	char_value(T, Acc#char_value{value = char_value_type(Value)});
   char_value([{"valueFrom", From} | T], Acc)
   		when is_integer(From); is_list(From) ->
  
positive.code: 				{aborted, {throw, precondition_failed}} ->
  					{error, 412};
  				{aborted, _Reason} ->
  					{error, 500}
  			end
  	catch
  
negative.code: 								Etag2 == undefined ->
  							case catch ocs_rest:patch(Operations, offer(Product1)) of
  								{struct, _} = Product2  ->
  									case catch offer(Product2) of
  										{struct, _} = Product3 ->
  											TS = erlang:system_time(millisecond),
  											N = erlang:unique_integer([positive]),
  											LM = {TS, N},
  											Product4 = Product3#offer{last_modified = LM},
  											ok = mnesia:write(Product4),
  											{Product2, LM};
  									_ ->
  										throw(bad_request)
  									end;
  								_ ->
  									throw(bad_request)
  							end;
  