anchor.diff:  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(Simple, _, St) ->
  +    true = is_simple(Simple),			%Sanity check!
  +    Vs = lit_vars(Simple),
  +    Anno = get_anno(Simple),
  +    {#isimple{anno=#a{us=Vs,anno=Anno},term=Simple},St}.
   
   uexpr_list(Les0, Ks, St0) ->
       mapfoldl(fun (Le, St) -> uexpr(Le, Ks, St) end, St0, Les0).
  
positive.code: 	    {#iprotect{anno=#a{anno=Anno},body=Eps++[E]},[],Bools0,St}
      end;
  gexpr({op,L,'andalso',E1,E2}, Bools, St0) ->
      {#c_var{name=V0},St} = new_var(L, St0),
      V = {var,L,V0},
      False = {atom,L,false},
      E = make_bool_switch_guard(L, E1, V, E2, False),
      gexpr(E, Bools, St);
  gexpr({op,L,'orelse',E1,E2}, Bools, St0) ->
      {#c_var{name=V0},St} = new_var(L, St0),
      V = {var,L,V0},
      True = {atom,L,true},
      E = make_bool_switch_guard(L, E1, V, True, E2),
  
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!
  