anchor.diff:    {FExpr, Env4} = clj_env:pop_expr(Env3),
   
     InvokeExpr = #{op => invoke,
  -                 env => #{}, %% Env4
  +                 env => ?DEBUG(Env4),
                    form => Form,
                    f => FExpr,
                    args => ArgsExpr},
  
positive.code:                _ -> fourth(List)
               end,
        {InitExpr, Env3} = clj_env:pop_expr(analyze(Env2, Init)),
        Expr = #{type => def,
                 var => Var1,
                 init => InitExpr},
        clj_env:push_expr(Env3, Expr)
    end.
  
  -spec validate_def_args('clojerl.List':type()) -> undefined | binary().
  
negative.code: -spec analyze(clj_env:env(), any()) -> clj_env:env().
  analyze(Env, undefined) ->
    Expr = #{op => constant,
             env => ?DEBUG(Env),
             tag => nil,
             form => undefined},
    clj_env:push_expr(Env, Expr);
  analyze(Env, Boolean) when is_boolean(Boolean) ->
    Expr = #{op => constant,
             env => ?DEBUG(Env),
             tag => boolean,
             form => Boolean},
    clj_env:push_expr(Env, Expr);
  analyze(Env, String) when is_binary(String) ->
    Expr = #{op => constant,
             env => ?DEBUG(Env),
             tag => string,
             form => String},
    clj_env:push_expr(Env, Expr);
  analyze(Env, Number) when is_number(Number) ->
    Expr = #{op => constant,
             env => ?DEBUG(Env),
             tag => number,
             form => Number},
    clj_env:push_expr(Env, Expr);
  