anchor.diff:      { [], [KV] } when is_list(KV) ->
         elixir_kv_block:decouple(orddict:erase(do, KV));
       _ ->
  -      elixir_errors:syntax_error(Line, S#elixir_scope.filename, "no block given for: ", "fn")
  +      syntax_error(Line, S#elixir_scope.filename, "no block given for: ", "fn")
     end,
   
     Transformer = fun({ match, ArgsWithGuards, Expr }, Acc) ->
  
positive.code:       { TBlock, TS } = translate_each(Block, VS#elixir_scope{recur=element(1,FunVar)}),
        { TBlock, TS#elixir_scope{recur=[]} };
      _ ->
        elixir_errors:syntax_error(Line, S#elixir_scope.filename, "invalid args for: ", "loop")
    end;
  
  translate_macro({recur, Line, Args}, S) when is_list(Args) ->
    record(recur, S),
    case S#elixir_scope.recur of
      [] ->
        elixir_errors:syntax_error(Line, S#elixir_scope.filename, "cannot invoke recur outside of a loop. invalid scope for: ", "recur");
      Recur ->
        ExVar = { Recur, Line, false },
        Call = { { '.', Line, [ExVar] }, Line, [ExVar|Args] },
  
negative.code:   record(Kind, S),
    case S#elixir_scope.function /= [] of
      true ->
        syntax_error(Line, S#elixir_scope.filename, "invalid function scope for: ", atom_to_list(Kind));
      _ ->
        { elixir_def:wrap_definition(Kind, Line, Call, Expr, S), S }
    end;
  