anchor.diff:              parse_config(Rest, Opts1, [{Key, Val}|Opts2], Spec);
           {'fun', Fun} ->
               case catch Fun(Key, Val, Opts1) of
  +                ok ->
  +                    parse_config(Rest, [{Key, Val}|Opts1], Opts2, Spec);
                   {ok, Val1} ->
                       parse_config(Rest, [{Key, Val1}|Opts1], Opts2, Spec);
                   {opts, Opts1B} ->
  
positive.code: 
      {error, {invalid_atom, "12345"}} = parse_config([{field01, "12345"}], Spec),
      
      {ok,[{field02, false}, {field01, fieldXX}],[{unknown, a}]} = 
          parse_config(
              [{field01, "fieldXX"}, {field02, <<"false">>}, {"unknown", a}],
              Spec),
  
      {ok,[
          {field09, <<"[::1]">>},
          {field08, <<"host">>},
          {field07, <<"b">>},
          {field06, "a"},
          {field05, 2},
          {field04, -1},
          {field03, b}
      ], []} = 
          parse_config(
              [{field03, <<"b">>}, {"field04", -1}, {field05, 2}, {field06, "a"}, 
  
negative.code:         false -> error
      end;
  
  do_parse_config(list, Val) ->
      case is_list(Val) of
          true -> {ok, Val};
          false -> error
      end;
  
  do_parse_config(proc, Val) ->
      case is_atom(Val) orelse is_pid(Val) of
          true -> {ok, Val};
          false -> error
      end;
  
  do_parse_config(integer, Val) ->
      do_parse_config({integer, none, none}, Val);
  
  do_parse_config(pos_integer, Val) ->
      do_parse_config({integer, 0, none}, Val);
  
  do_parse_config(nat_integer, Val) ->
      do_parse_config({integer, 1, none}, Val);
  
  do_parse_config({integer, Min, Max}, Val) ->
      case nklib_util:to_integer(Val) of
  