anchor.diff:      has_key(Key,?FROM_JSON(DataObject)).
   
   
  -%% @doc Unordered list of keys used by data object
  +%% @doc Erlang term ordered list of keys used by data object
   -spec keys(data_object()) -> list().
   keys(DataObject) when is_list(DataObject) -> 
  -    proplists:get_keys(DataObject);
  +    lists:sort(proplists:get_keys(DataObject));
   keys(DataObject) when is_map(DataObject) -> 
  -    maps:keys(DataObject);
  +    lists:sort(maps:keys(DataObject));
   keys(DataObject) -> 
       keys(?FROM_JSON(DataObject)).
   
  
positive.code: %% ===================================================================
  %% TESTS
  %% ===================================================================
  -ifdef(TEST).
  
  -include_lib("eunit/include/eunit.hrl").
  
  -define(TEST_JSON, <<"{\"surname\":\"Doe\",\"name\":\"John\",\"foo\":\"bar\",\"earthling\":true,\"age\":981,\"empty\":null}">>).
  
negative.code: 
  -define(NOT_SUPPORTED,throw(not_yet_supported)).
  
  -ifdef(ALLOW_MAPS).
  %%                  {Module, Decode, Encode}
  -define(JSON_LIBS, [{jsx, 
                       fun(<<"{}">>) -> #{};
  