anchor.diff:  -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},
  +                     fun(__JS) when is_list(__JS) -> jsx:encode(__JS);
  +                        (__JS) when is_binary(__JS) -> __JS;
  +                        (__JS) -> jsx:encode(__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}
  +                     fun(__JS) when is_list(__JS) -> jiffy:encode({__JS});
  +                        (__JS) when is_binary(__JS) -> __JS;
  +                        (__JS) -> jiffy:encode(__JS) end}
                      ]).
   -endif.
   
  
positive.code: %% ===================================================================
  %% Exported functions
  %% ===================================================================
  -ifdef(ALLOW_MAPS).
  %% @doc Find function, returns {ok,Value} or error
  -spec find(key(),data_object()) -> {ok, value()} | error.
  find(Key,DataObject) when is_list(DataObject) ->
      case proplists:get_value(Key,DataObject,undefined) of
          undefined -> error;
  
negative.code:     maps:map(Fun,?CL(DataObject));
  map(Fun,DataObject) ->
      ?TO_JSON(map(Fun,?FROM_JSON(DataObject))).
  -else.
  map(Fun,DataObject) when is_list(DataObject) ->
      lists:map(fun({K,V}) -> {K,Fun(K,V)} end,
                proplists:unfold(DataObject));
  map(Fun,DataObject) ->
      ?TO_JSON(map(Fun,?FROM_JSON(DataObject))).
  -endif.
  
  
  %% @doc Create new imen json data object using default type
  -spec new() -> data_object().
  