anchor.diff:  resource_char([#resource_char{} | _] = List) ->
   	[resource_char1(R) || R <- List].
   %% @hidden
  -resource_char([{"name", "rate"}, {"value", Value} | _], _Acc)
  -		when is_integer(Value) ->
  -	#resource_char{name = "rate", value = Value};
   resource_char([{"name", Name} | T], Acc) when is_list(Name) ->
   	resource_char(T, Acc#resource_char{name = Name});
  -resource_char([{"value", Value} | T], #resource_char{name = "name"} = Acc)
  -		when is_list(Value) ->
  +resource_char([{"value", Value} | T], Acc) when is_list(Value) ->
  +	resource_char(T, Acc#resource_char{value = Value});
  +resource_char([{"value", Value} | T], Acc) when is_integer(Value) ->
  +	resource_char(T, Acc#resource_char{value = Value});
  +resource_char([{"value", Value} | T], Acc) when is_float(Value) ->
  +	resource_char(T, Acc#resource_char{value = Value});
  +resource_char([{"value", Value} | T], Acc) when is_boolean(Value) ->
   	resource_char(T, Acc#resource_char{value = Value});
   resource_char([{"value", {struct, QosList}} | T],
   		#resource_char{name = "qosInformation"} = Acc) when is_list(QosList) ->
   	resource_char(T, Acc#resource_char{value = parse_char(QosList, #{})});
  -resource_char([{"value", Value} | T], #resource_char{name = "chargingKey"} = Acc)
  -		when is_integer(Value) ->
  -	resource_char(T, Acc#resource_char{value = Value});
   resource_char([{"value", {array, FlowStructs}} | T],
   		#resource_char{name = "flowInformation"} = Acc)
   		when is_list(FlowStructs) ->
  
positive.code: 			parse_char(FlowList, #{})
  	end,
  	resource_char(T, Acc#resource_char{value = lists:map(F, FlowStructs)});
  resource_char([{"value", Value} | T], #resource_char{name = "precedence"} = Acc)
  		when is_integer(Value) ->
  	resource_char(T, Acc#resource_char{value = Value});
  resource_char([{"value", Value} | T], #resource_char{name = "serviceId"} = Acc)
  		when is_list(Value) ->
  	resource_char(T, Acc#resource_char{value = Value});
  resource_char([{"value", Value} | T], Acc) when is_list(Value) ->
  	resource_char(T, Acc#resource_char{value = Value});
  resource_char([], Acc) ->
  	Acc.
  %% @hidden
  resource_char1(#resource_char{name = "chargingKey", value = Value})
  		when is_integer(Value) ->
  	{struct, [{"name", "chargingKey"}, {"value", Value}]};
  resource_char1(#resource_char{name = "precedence", value = Value})
  		when is_integer(Value) ->
  	{struct, [{"name", "precedence"}, {"value", Value}]};
  resource_char1(#resource_char{name = "qosInformation",
  		value = #{"maxRequestedBandwidthDL" := MaxDL,
  		"maxRequestedBandwidthUL" := MaxUL, "qosClassIdentifier" := Class}})
  
negative.code: 	end,
  	{struct, [{"name", "flowInformation"},
  			{"value", {array, lists:map(F, FlowList)}}]};
  resource_char1(#resource_char{name = Name, value = Value})
  		when is_list(Value) ->
  	{struct, [{"name", Name}, {"value", Value}]}.
  
  %% @hidden
  