anchor.diff:  
   -spec read_token(state()) -> {binary(), state()}.
   read_token(State) ->
  +  read_token(State, -1).
  +
  +-spec read_token(state(), integer()) -> {binary(), state()}.
  +read_token(State, Length) ->
     Fun = fun(Char) ->
               (not is_whitespace(Char))
                 andalso (not is_macro_terminating(Char))
           end,
  -  consume(State, Fun).
  +  consume(State, Fun, Length).
  +
   
   -spec read_until(char(), state()) -> state().
   read_until(Delim, State) ->
  
positive.code: -spec unicode_char(state(), integer(), integer(), Exact :: boolean()) ->
    {binary(), state()}.
  unicode_char(State, Base, Length, IsExact) ->
    NumberBaseFun = fun
                      (C) when C >= $0, C =< $9 -> C - $0 + 1  =< Base;
                      (C) when C >= $a, C =< $z -> C - $a + 11 =< Base;
                      (C) when C >= $A, C =< $Z -> C - $A + 11 =< Base;
                      (_) -> false
                    end,
    {Number, State1} = consume(State, NumberBaseFun, Length),
    Size = case IsExact of
             true -> size(Number);
             false -> Length
           end,
    case Size of
      Length ->
        try
          EscapedChar = binary_to_integer(Number, Base),
          {EscapedChar, State1}
        catch
          error:badarg ->
            clj_utils:error( [ <<"Number '">>, Number
                             , <<"' is not in base ">>, Base
                             ]
                            , location(State)
                           )
        end;
      NumLength ->
        clj_utils:error( [ <<"Invalid character length: ">>, NumLength
                         , <<", should be: ">>, Length
                         ]
                       , location(State)
                       )
    end.
  
  %%------------------------------------------------------------------------------
  %% Keyword
  
negative.code:     end,
  
    CharBin = unicode:characters_to_binary([Char]),
    push_form(CharBin, State1);
  read_char(State) ->
    clj_utils:error( <<"EOF while reading character">>
                   , location(State)
                   ).
  
  -spec read_octal_char(state()) -> char().
  read_octal_char(#{src := RestToken} = State) when size(RestToken) > 3 ->
  