anchor.diff:          Tokens -> {ok, [W || {W, _} <- Tokens]}
       end;
   
  -spec(log_level, Val) when Val>=0, Val=<8 -> 
  +spec(log_level, Val) when Val >= 0, Val =< 8 ->
       {ok, Val};
   
   spec(log_level, Val) ->
  
positive.code: spec(atom, Val) ->
      to_existing_atom(Val);
  
  spec(boolean, Val) when Val==0; Val=="0" ->
      {ok, false};
  
  spec(boolean, Val) when Val==1; Val=="1" ->
      {ok, true};
  
  spec(boolean, Val) ->
  
negative.code:         fieldXX => invalid
      },
  
      {ok, #{}, []} = parse([], Spec),
  
      {error, {syntax_error, <<"field01">>}} = parse([{field01, "12345"}], Spec),
  
      {ok, #{field01:=fieldXX, field02:=false}, [<<"unknown">>]} =
          parse([{field01, "fieldXX"}, {field02, <<"false">>}, {"unknown", a}], Spec),
  
      {ok,
          #{
  