anchor.diff:  
   -spec json_binary_decode(Json) -> data_object() when Json :: binary().
   json_binary_decode(Json) ->
  +    json_binary_decode(Json,?JSON_LIBS).
  +json_binary_decode(Json,Libs) ->
       %% Json Lib detection should probably be replaced by an environment variable
       Apps = [App || {App,_,_} <- application:loaded_applications()],
  -    case [_Fun || {_Lib,_Fun,_} <- ?JSON_LIBS, lists:member(_Lib,Apps)] of
  +    case [_Fun || {_Lib,_Fun,_} <- Libs, lists:member(_Lib,Apps)] of
           [Decode|_] -> Decode(Json);
           []     -> ?NO_JSON_LIB 
       end.
   
   -spec json_binary_encode(data_object()) -> Json when Json :: binary().
   json_binary_encode(Json) ->
  +    json_binary_encode(Json,?JSON_LIBS).
  +json_binary_encode(Json,Libs) ->
       %% Json Lib detection should probably be replaced by an environment variable
       Apps = [App || {App,_,_} <- application:loaded_applications()],
  -    case [_Fun || {_Lib,_,_Fun} <- ?JSON_LIBS, lists:member(_Lib,Apps)] of
  +    case [_Fun || {_Lib,_,_Fun} <- Libs, lists:member(_Lib,Apps)] of
           [Encode|_] -> Encode(Json);
           []     -> ?NO_JSON_LIB 
       end.
  
positive.code:      fun setup/0,
      [{"proplist",?_assertEqual(8000, proplists:get_value(<<"age">>,PropOut))},
       {"map",?_assertEqual(8000, maps:get(<<"age">>,MapOut))},
       {"json",?_assertEqual(8000,?MODULE:get(<<"age">>,JsonOut))}]}.
  
  values_test_() ->
      Values = lists:sort([<<"Doe">>,<<"John">>,<<"bar">>,true,981,null]),
  
negative.code: 
  -define(DEFAULT_TYPE, proplist). % proplist | map | json
  
  -define(JSON_PATH_SEPARATOR,":").
  
  -define(JSON_POWER_MODE,false). % Use binary parsing, when implemented, to handle raw binary data
  
  -define(NO_JSON_LIB,throw(no_json_library_found)).
  