anchor.diff:    TExpr             = elixir_tree_helpers:abstract_syntax(Expr),
     { elixir_def:wrap_definition(Kind, Line, TName, TArgs, TGuards, TExpr, S), S };
   
  -translate({Kind, Line, [Name, Args, Guards, Expr]}, S) when ?FUNS() ->
  +translate({Kind, Line, [Name, Args, Guards, Expr]}, S) when ?FUNS(Kind) ->
     assert_module_scope(Line, Kind, S),
     assert_no_function_scope(Line, Kind, S),
     { TName, NS }   = translate_each(Name, S),
  
positive.code:   assert_no_function_scope/3, assert_module_scope/3, assert_no_assign_or_guard_scope/3]).
  -include("elixir.hrl").
  
  -define(FUNS(), Kind == def; Kind == defp; Kind == defmacro; Kind == defmacrop).
  -compile({parse_transform, elixir_transform}).
  
  %% Operators
  
negative.code: 
    { elixir_module:translate(Line, FRef, Block, S), FS };
  
  translate({Kind, Line, [Call]}, S) when ?FUNS(Kind) ->
    translate({Kind, Line, [Call, nil]}, S);
  
  translate({Kind, Line, [Call, Expr]}, S) when ?FUNS(Kind) ->
    assert_module_scope(Line, Kind, S),
    assert_no_function_scope(Line, Kind, S),
    { TCall, Guards } = elixir_clauses:extract_guards(Call),
  