anchor.diff:      {integer, [integer()]} | {record, atom()} |
       string | binary | lower | upper |
       ip | ip4 | ip6 | host | host6 | {function, pos_integer()} |
  -    unquote | path | fullpath | uri | uris | tokens | words | log_level |
  +    unquote | path | fullpath | uri | uris | tokens | words | map | log_level |
       map() | list() | syntax_fun().
   
   -type syntax_fun() ::
  
positive.code: do_parse_config_list(_, _, _, _) ->
      error.
  
  
         
  
  %% ===================================================================
  %% EUnit tests
  
negative.code:         _ -> error
      end;
  
  do_parse_config(map, Map) ->
      case is_map(Map) andalso do_parse_config_map(maps:to_list(Map)) of
          ok -> {ok, Map};
          _ -> error
      end;
  
  do_parse_config([Opt|Rest], Val) ->
      case catch do_parse_config(Opt, Val) of
          {ok, Val1} -> {ok, Val1};
  