anchor.diff:  -type syntax_term() ::
       ignore |
       any |
  -    atom | {atom, [atom()]} | {atom_or_binary, [atom()]} | atom_or_binary |
  -    new_atom |
  +    atom | {atom, [atom()]} | {atom_or_binary, [atom()]} |
  +    new_atom | raw_atom |
       boolean |
       list |
       pid |
  
positive.code:             end;
          error ->
              error
      end;
  
  spec(atom_or_binary, Val) ->
      case to_existing_atom(Val) of
          {ok, Atom} ->
              {ok, Atom};
          error ->
              {ok, to_bin(Val)}
      end;
  
  spec({atom_or_binary, List}, Val) ->
  
negative.code:             {ok, Val}
      end;
  
  spec(raw_atom, Val) when is_atom(Val) ->
      {ok, Val};
  
  spec(raw_atom, _Val) ->
      error;
  
  spec(atom, Val) ->
      to_existing_atom(Val);
  
  