anchor.diff:                    }.
   
   -type read_fold_fun() :: fun((any(), any()) -> any()).
  +
  +-define(ARG_ENV, arg_env).
  +-define(GENSYM_ENV, gensym_env).
  +-define(SUPPRESS_READ, suppress_read).
   
   -spec read_fold(read_fold_fun(), binary(), opts(), clj_env:env()) ->
     clj_env:env().
  
positive.code: 
  -spec read_arg(state()) -> state().
  read_arg(#{src := <<"%"/utf8, _/binary>>} = State) ->
    case erlang:get(arg_env) of
      undefined ->
        read_symbol(State);
      ArgEnv ->
  
negative.code:       GenSym1    = 'clojerl.Symbol':with_meta(GenSym0, Meta),
  
        SymbolName = 'clojerl.Symbol':name(Symbol),
        erlang:put(?GENSYM_ENV, GensymEnv#{SymbolName => GenSym1}),
        GenSym1;
      GenSym ->
        GenSym
  