anchor.diff:  
   -spec parse_new('clojerl.List':type(), clj_env:env()) -> clj_env:env().
   parse_new(Form, Env) ->
  +  Env0              = clj_env:push(#{context => expr}, Env),
     [_, Type | Args]  = clj_rt:to_list(Form),
  -
  -  {TypeExpr, Env1}  = clj_env:pop_expr(analyze_form(Type, Env)),
  +  {TypeExpr, Env1}  = clj_env:pop_expr(analyze_form(Type, Env0)),
     {ArgsExprs, Env2} =
       clj_env:last_exprs(length(Args), analyze_forms(Args, Env1)),
   
  
positive.code:                 #{}
              end,
  
    BodyEnv = clj_env:push(Mapping, Env3),
    Body    = clj_rt:rest(clj_rt:rest(Form)),
    {BodyExpr, Env4} = clj_env:pop_expr(analyze_body(Body, BodyEnv)),
  
    LetExprExtra = #{ body     => BodyExpr
                    , bindings => BindingsExprs
                    , tag      => type_tag(BodyExpr)
                    },
  
    Env5 = clj_env:remove_locals_scope(Env4),
    Env6 = clj_env:pop(clj_env:pop(Env5)),
    {LetExprExtra, Env6}.
  
  -spec parse_binding({any(), any()}, clj_env:env()) -> clj_env:env().
  parse_binding({Pattern, Init}, Env0) ->
  
negative.code: 
    {InvokeExpr1, Env5} = add_type_tag(Form, InvokeExpr0, Env4),
  
    clj_env:push_expr(InvokeExpr1, clj_env:pop(Env5)).
  
  -spec signature_tag( integer()
                     , expr() | ?NO_TAG
  