anchor.diff:      {[E|Es],St2};
   expr_list([], St) -> {[],St}.
   
  -%% icr_clauses([Clause], State) -> {[TransformedClause],State'}
  -%%  Be very careful here to return the variables that are really used
  -%%  and really new.
  -
  -icr_clauses([], St) -> {[],St};
  -icr_clauses(Clauses, St) -> icr_clauses2(Clauses, St).
  -
  -icr_clauses2([{clause,Line,H0,G0,B0}|Cs0], St0) ->
  -    {H,St1} = head(H0, St0),
  -    {G,St2} = guard(G0, St1),
  -    {B,St3} = exprs(B0, St2),
  -    {Cs,St4} = icr_clauses2(Cs0, St3),
  -    {[{clause,Line,H,G,B}|Cs],St4};
  -icr_clauses2([], St) -> {[],St}.
  -
   %% lc_tq(Line, Qualifiers, State) ->
   %%      {[TransQual],State'}
   
  
positive.code: fun_tq(Lf, {function,_,_,_}=ExtFun, St) ->
      {{'fun',Lf,ExtFun},St};
  fun_tq(Lf, {clauses,Cs0}, St0) ->
      {Cs1,St1} = fun_clauses(Cs0, St0),
      {Fname,St2} = new_fun_name(St1),
      %% Set dummy values for Index and Uniq -- the real values will
      %% be assigned by beam_asm.
  
negative.code: %%      {TransformedPattern,State'}
  %%
  
  pattern({var,_,_}=Var, St) ->
      {Var,St};
  pattern({char,_,_}=Char, St) ->
  