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 analyze_fn_method(clj_env:env(), 'clojerl.List':type()) -> clj_env:env().
  analyze_fn_method(Env, List) ->
    Params = first(List),
    clj_utils:throw_when(not clj_core:'vector?'(Params),
                         <<"Parameter declaration should be a vector">>),
  
  
negative.code: 
  -spec analyze_form(clj_env:env(), any()) -> clj_env:env().
  analyze_form(Env, Form) ->
    case clj_core:type(Form) of
      'clojerl.Symbol' ->
        analyze_symbol(Env, Form);
      'clojerl.List' ->
        Op = clj_core:first(Form),
        analyze_seq(Env, Op, Form);
      'clojerl.Vector' ->
        analyze_vector(Env, Form);
  