anchor.diff:                 _ -> 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)
  +      VarExpr = #{op => def,
  +                  env => ?DEBUG(Env3),
  +                  form => List,
  +                  name => VarSymbol,
  +                  var => Var1,
  +                  doc => Docstring,
  +                  init => InitExpr,
  +                  dynamic => IsDynamic},
  +      clj_env:push_expr(Env3, VarExpr)
     end.
   
   -spec validate_def_args('clojerl.List':type()) -> undefined | binary().
  
positive.code:   {FExpr, Env4} = clj_env:pop_expr(Env3),
  
    InvokeExpr = #{op => invoke,
                   env => #{}, %% Env4
                   form => Form,
                   f => FExpr,
                   args => ArgsExpr},
  
negative.code:   {ItemsExpr, Env2} = clj_env:last_exprs(Env1, Count),
  
    VectorExpr = #{op => vector,
                   env => ?DEBUG(Env2),
                   form => Vector,
                   items => ItemsExpr},
    clj_env:push_expr(Env2, VectorExpr).
  