anchor.diff:  	offer(T, Acc);
   offer([{"href", _URI} | T], Acc) ->
   	offer(T, Acc);
  -offer([{"name", Name} | T], Acc) ->
  +offer([{"name", Name} | T], Acc) when is_list(Name) ->
   	offer(T, Acc#product{name = Name});
  -offer([{"description", Description} | T], Acc) ->
  +offer([{"description", Description} | T], Acc) when is_list(Description) ->
   	offer(T, Acc#product{description = Description});
   offer([{"validFor", {struct, L}} | T], Acc) ->
   	Acc1 = case lists:keyfind("startDateTime", 1, L) of
  
positive.code: 	offer(T, P, [{"price", price(Price)} | Acc]);
  offer([characteristics | T],
  		#product{characteristics = Chars} = P, Acc) when is_list(Chars) ->
  	offer(T, P, [{"characteristic", characterics(Chars)} | Acc]);
  offer([last_modified | T], #product{last_modified = Last} = P, Acc)
  		when is_integer(Last) ->
  	offer(T, P, [{"lastUpdate", ocs_rest:iso8601(Last)} | Acc]);
  
negative.code: 	offer(T, Acc#product{status = offer_status(Status)});
  offer([{"price", Price} | T], Acc) ->
  	offer(T, Acc#product{price = price(Price)});
  offer([{"characteristic", Chars} | T], Acc) when is_list(Chars) ->
  	offer(T, Acc#product{characteristics = characteristics(Chars)});
  offer([{"lastUpdate", Last} | T], Acc) ->
  	offer(T, Acc#product{last_modified = ocs_rest:iso8601(Last)}).
  %% @hidden
  offer([name | T], #product{name = Name} = P, Acc) when is_list(Name) ->
  	offer(T, P, [{"name", Name} | Acc]);
  offer([description | T], #product{description = Description} = P,
  		Acc) when is_list(Description) ->
  