anchor.diff:  new_var(St) ->
       new_var([], St).
   
  -new_var(Anno, St0) ->
  +new_var(Anno, St0) when is_list(Anno) ->
       {New,St} = new_var_name(St0),
       {#c_var{anno=Anno,name=New},St}.
   
  
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:     Anno = get_anno(Lit),
      Vs = Anno#a.us,
      {set_anno(Lit, Anno#a.anno),[],Vs,St};
  cexpr(#isimple{anno=#a{us=Vs},term=Simple}, _As, St) ->
      true = is_simple(Simple),		%Sanity check!
      {Simple,[],Vs,St}.
  
  cfun(#ifun{anno=A,id=Id,vars=Args,clauses=Lcs,fc=Lfc}, _As, St0) ->
      {Ccs,St1} = cclauses(Lcs, [], St0),     %NEVER export!
  