anchor.diff:          }
       end,
   
  -  {ArgsExprs, Env2} = clj_env:last_exprs( length(ArgsList)
  -                                        , analyze_forms(ArgsList, Env1)
  +  {ArgsExprs, Env3} = clj_env:last_exprs( length(ArgsList)
  +                                        , analyze_forms(ArgsList, Env2)
                                           ),
  -  {TagExpr, Env3}   = fetch_type_tag(Form, Env2),
  +  {TagExpr, Env4}   = fetch_type_tag(Form, Env3),
  +  Env5              = clj_env:pop(Env4),
   
     case TargetExpr of
       #{ op   := type
  
positive.code: 
    {InvokeExpr1, Env5} = add_type_tag(Form, InvokeExpr0, Env4),
  
    clj_env:push_expr(InvokeExpr1, Env5).
  
  -spec signature_tag( integer()
                     , expr() | ?NO_TAG
  
negative.code: -spec analyze_invoke('clojerl.List':type(), clj_env:env()) -> clj_env:env().
  analyze_invoke(Form, Env) ->
    FSym          = clj_rt:first(Form),
    Env0          = clj_env:push(#{context => expr}, Env),
    {FExpr, Env1} = clj_env:pop_expr(analyze_form(FSym, Env0)),
  
    Args          = clj_rt:to_list(clj_rt:rest(Form)),
    ArgCount      = length(Args),
    {ArgsExpr, Env2} = clj_env:last_exprs(ArgCount, analyze_forms( Args, Env1)),
  
    {FormTagExpr, Env3} = fetch_type_tag(Form, Env2),
    {TagExpr, Env4} = case FExpr of
  