anchor.diff:  read_regex(#{src := <<"\""/utf8, _/binary>>} = State) ->
     Current = maps:get(current, State, <<>>),
     {ok, Regex} = re:compile(Current),
  -  push_form(Regex, consume_char(State));
  +  push_form(Regex, consume_char(maps:remove(current, State)));
   read_regex(#{src := <<Ch/utf8, _/binary>>} = State) ->
     Current = maps:get(current, State, <<>>),
     NewState = State#{current => <<Current/binary, Ch/utf8>>},
  
positive.code: %%------------------------------------------------------------------------------
  
  -spec read_string(state()) -> state().
  read_string(#{ src     := <<"\"", _/binary>>
               , current := String
               } = State0
             ) ->
    State = consume_char(maps:remove(current, State0)),
    push_form(String, State);
  read_string(#{ src := <<"\\", _/binary>>
               , current := String
               } = State0
  
negative.code:   State = State00#{current => <<String/binary, EscapedChar/binary>>},
  
    read_string(State);
  %% Append character to current string
  read_string(#{ src     := <<Char/utf8, _/binary>>
               , current := String} = State0) ->
    State = State0#{current => <<String/binary, Char/utf8>>},
    read_string(consume_char(State));
  %% Start consuming string
  read_string(#{src := <<"\"", _/binary>>, loc := Loc} = State) ->
    State1 = add_scope(consume_char(State)),
    read_string(location_started(State1#{current => <<>>}, Loc));
  %% Didn't find closing double quotes
  read_string(#{src := <<>>} = State) ->
    {Line, Col} = scope_get(loc_started, State),
    clj_utils:throw( [ <<"Started reading at (">>
                     , Line, <<":">>, Col
                     , <<") but found EOF while expecting '\"'">>
                     ]
                   , location(State)
                   ).
  
  -spec escape_char(state()) -> {binary(), state()}.
  escape_char(State = #{src := <<Char/utf8, Rest/binary>>}) ->
  