anchor.diff:      {Args,St1} = new_vars(Anno, Arity, St0),
       {Cs1,St2} = clauses(Cs0, St1),
       {Ps,St3} = new_vars(Arity, St2),    %Need new variables here
  -    Fc = function_clause(Ps, {Name,Arity}),
  +    Fc = function_clause(Ps, Anno, {Name,Arity}),
       {#ifun{anno=#a{anno=Anno},id=[],vars=Args,clauses=Cs1,fc=Fc},St3}.
   
   %% clause(Clause, State) -> {Cclause,State} | noclause.
  
positive.code:     new_vars_1(N-1, Anno, St1, [V|Vs]);
  new_vars_1(0, _, St, Vs) -> {Vs,St}.
  
  function_clause(Ps, Name) ->
      function_clause(Ps, [], Name).
  
  function_clause(Ps, LineAnno, Name) ->
      FcAnno = [{function_name,Name}],
      fail_clause(Ps, FcAnno,
  		ann_c_tuple(LineAnno, [#c_literal{val=function_clause}|Ps])).
  
  fail_clause(Pats, Arg) ->
      fail_clause(Pats, [], Arg).
  
  fail_clause(Pats, Anno, Arg) ->
      #iclause{anno=#a{anno=[compiler_generated]},
  
negative.code:     {Cs1,St1} = clauses(Cs0, St0),
      {Args,St2} = new_vars(Arity, St1),
      {Ps,St3} = new_vars(Arity, St2),		%Need new variables here
      Anno = lineno_anno(L, St3),
      Fc = function_clause(Ps, Anno, {Name,Arity}),
      Fun = #ifun{anno=#a{anno=Anno},
  		id=[{id,Id}],				%We KNOW!
  		vars=Args,clauses=Cs1,fc=Fc},
      {Fun,[],St3}.
  