anchor.diff:  
   %% @private
   do_parse_key(Key, Val, Parse) ->
  -    #parse{ok=OK, ok_exp=OkExp, no_ok=NoOk} = Parse,
  +    #parse{ok=OK, ok_exp=OkExp, no_ok=NoOk, opts=Opts} = Parse,
       case to_existing_atom(Key) of
           {ok, Key2} ->
               case find_config(Key2, Val, Parse) of
                   {ok, Key3, Val3} ->
  +                    PathKey = path_key(Key3, Parse),
  +                    Key4 = case maps:get({binary_key, PathKey}, Opts, false) of
  +                        false -> Key3;
  +                        true -> to_bin(Key3)
  +                    end,
                       Parse2 = Parse#parse{
  -                        ok = [{Key3, Val3}|OK],
  -                        ok_exp = [{path_key(Key3, Parse), Val3}|OkExp]
  +                        ok = [{Key4, Val3}|OK],
  +                        ok_exp = [{PathKey, Val3}|OkExp]
                       },
                       {ok, Parse2};
                   {nested, Val2, Nested} ->
  
positive.code:     path :: binary(),
      defaults :: map(),
      mandatory :: [binary()],
      opts :: map()
  }).
  
  
  
negative.code: -type syntax() :: #{ atom() => syntax_opt()}.
  
  -type syntax_opt() ::
      syntax_term() |
      {list|slist|ulist, syntax_term()}.
  
  -type syntax_term() ::
      ignore | 
      any | 
      atom | {atom, [atom()]} |
  