anchor.diff:        analyze_symbol(Env, Form);
       'clojerl.Keyword' ->
         Expr = #{op => constant,
  -               env => #{}, %% Env
  +               env => ?DEBUG(Env),
                  tag => 'clojerl.Keyword',
                  form => Form},
         clj_env:push_expr(Env, Expr);
  
positive.code:   {FExpr, Env4} = clj_env:pop_expr(Env3),
  
    InvokeExpr = #{op => invoke,
                   env => #{}, %% Env4
                   form => Form,
                   f => FExpr,
                   args => ArgsExpr},
  
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);
  