anchor.diff:  %% ===================================================================
   %% TESTS
   %% ===================================================================
  +
   -ifdef(TEST).
  -
   -include_lib("eunit/include/eunit.hrl").
   
   -define(TEST_JSON, <<"{\"surname\":\"Doe\",\"name\":\"John\",\"foo\":\"bar\",\"earthling\":true,\"age\":981,\"empty\":null}">>).
  
positive.code:     has_key(Key,?FROM_JSON(DataObject)).
  
  
  %% @doc Unordered list of keys used by data object
  -spec keys(data_object()) -> list().
  keys(DataObject) when is_list(DataObject) -> 
      proplists:get_keys(DataObject);
  keys(DataObject) when is_map(DataObject) -> 
      maps:keys(DataObject);
  keys(DataObject) -> 
      keys(?FROM_JSON(DataObject)).
  
  
negative.code: -define(JSON_LIBS, [{jsx, 
                       fun(<<"{}">>) -> [];
                          (__JS) -> jsx:decode(__JS) end,
                       fun(__JS) when is_list(__JS) -> jsx:encode(__JS) end},
                          %(__JS) when is_map(__JS) -> jsx:encode(maps:to_list(__JS)) end},
                      {jiffy,
                       fun(<<"{}">>) -> [];
                          (__JS) -> {O} = jiffy:decode(__JS), O end,
                       fun(__JS) when is_list(__JS) -> jiffy:encode({__JS})}
                          %(__JS) when is_map(__JS) -> jiffy:encode(__JS) end}
                     ]).
  -endif.
  
  