anchor.diff:                  field12_a => atom,
                   field12_b => integer
               },
  +        field13 => {list, atom},
           fieldXX => invalid
       },
   
  
positive.code: 
  -compile({no_auto_import, [get/1, put/2]}).
  
  
  -type parse_opt() ::
      any | atom | boolean | {enum, [atom()]} | list | pid | proc |
      integer | pos_integer | nat_integer | {integer, none|integer(), none|integer()} |
      {integer, [integer()]} | {record, atom()} |
      string | binary | lower | upper |
      ip | host | host6 | {function, pos_integer()} |
      unquote | path | uris | tokens | map() |
      fun((atom(), term(), [{atom(), term()}]) -> 
              ok | {ok, term()} | {opts, [{atom(), term()}]} | error).
  
  -type parse_spec() :: #{ atom() => parse_opt()}.
  
  
negative.code:         false -> error
      end;
  
  do_parse_config({list, Type}, Val) ->
      case is_list(Val) of
          true -> 
              do_parse_config_list(Val, Type, []);
          false -> 
              error
      end;
  
  do_parse_config(proc, Val) ->
      case is_atom(Val) orelse is_pid(Val) of
          true -> {ok, Val};
  