anchor.diff:  
   -spec analyze_invoke(clj_env:env(), 'clojerl.List':type()) -> clj_env:env().
   analyze_invoke(Env, Form) ->
  -  Env1 = analyze_form(Env, first(Form)),
  -
  -  Args = rest(Form),
  +  Env1 = analyze_form(Env, clj_core:first(Form)),
  +
  +  Args = clj_core:rest(Form),
     Env2 = analyze_forms(Env1, 'clojerl.List':to_list(Args)),
   
     ArgCount = clj_core:count(Args),
  
positive.code: -spec parse_ns(clj_env:env(), 'clojerl.List':type()) -> clj_env:env().
  parse_ns(Env, List) ->
    Second = clj_core:second(List),
    case 'symbol?'(Second) of
      true ->
        {_, NewEnv} = clj_env:find_or_create_ns(Env, Second),
        NewEnv;
  
negative.code: 
  -spec parse_do(clj_env:env(), 'clojerl.List':type()) -> clj_env:env().
  parse_do(Env, Form) ->
    Statements = clj_core:rest(Form),
    StmtEnv = clj_env:context(Env, statement),
    StatementsList = 'clojerl.List':to_list(Statements),
    Env1 = analyze_forms(StmtEnv, StatementsList),
    {AllStatementsExprs, Env2} =
      clj_env:last_exprs(Env1, clj_core:count(Statements)),
  
    {StatementsExprs, ReturnExpr} =
      case AllStatementsExprs of
  