anchor.diff:  response_to_binary(Json) when is_list(Json) ->
       list_to_binary(Json).
   
  -get_response_fields(Json) ->
  +fields_from(Json) ->
       {
         proplists:get_value(<<"multicast_id">>, Json),
         proplists:get_value(<<"success">>, Json),
  
positive.code: 
  to_be_parsed(0, 0) -> false;
  
  to_be_parsed(_Failure, _Canonical) -> true.
  
  parse_result(Result, RegId, ErrorFun) ->
      case {
  
negative.code: 
  
  handle_push_result(Json, RegIds, undefined) ->
      {_Multicast, _Success, _Failure, _Canonical, Results} = fields_from(Json),
      lists:map(fun({Result, RegId}) -> 
  		      parse_result(Result, RegId, fun(E, I) -> {E, I} end) 
  	      end, lists:zip(Results, RegIds));
  
  handle_push_result(Json, RegIds, ErrorFun) ->
      {_Multicast, _Success, Failure, Canonical, Results} = fields_from(Json),
      case to_be_parsed(Failure, Canonical) of
          true ->
              lists:foreach(fun({Result, RegId}) -> parse_result(Result, RegId, ErrorFun) end,
  