anchor.diff:  -record(ifilter,   {anno=#a{},arg}).
   -record(igen,      {anno=#a{},ceps=[],acc_pat,acc_guard,
   		    skip_pat,tail,tail_pat,arg}).
  +-record(isimple,   {anno=#a{},term :: cerl:cerl()}).
   
   -type iapply()    :: #iapply{}.
   -type ibinary()   :: #ibinary{}.
  
positive.code: uexpr(#c_literal{}=Lit, _, St) ->
      Anno = get_anno(Lit),
      {set_anno(Lit, #a{us=[],anno=Anno}),St};
  uexpr(Lit, _, St) ->
      true = is_simple(Lit),			%Sanity check!
      Vs = lit_vars(Lit),
      Anno = get_anno(Lit),
      {set_anno(Lit, #a{us=Vs,anno=Anno}),St}.
  
  uexpr_list(Les0, Ks, St0) ->
      mapfoldl(fun (Le, St) -> uexpr(Le, Ks, St) end, St0, Les0).
  
negative.code: new_var(St) ->
      new_var([], St).
  
  new_var(Anno, St0) when is_list(Anno) ->
      {New,St} = new_var_name(St0),
      {#c_var{anno=Anno,name=New},St}.
  
  