anchor.diff:      Anno = get_anno(Lit),
       Vs = Anno#a.us,
       {set_anno(Lit, Anno#a.anno),[],Vs,St};
  -cexpr(Lit, _As, St) ->
  -    true = is_simple(Lit),		%Sanity check!
  -    Anno = get_anno(Lit),
  -    Vs = Anno#a.us,
  -    %%Vs = lit_vars(Lit),
  -    {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!
  
positive.code: 
  cexprs([#iset{var=#c_var{name=Name}=Var}=Iset], As, St) ->
      %% Make return value explicit, and make Var true top level.
      cexprs([Iset,Var#c_var{anno=#a{us=[Name]}}], As, St);
  cexprs([Le], As, St0) ->
      {Ce,Es,Us,St1} = cexpr(Le, As, St0),
      Exp = make_vars(As),			%The export variables
  
negative.code: 	    {#iprotect{anno=#a{anno=Anno},body=Eps++[E]},[],Bools0,St}
      end;
  gexpr({op,L,'andalso',E1,E2}, Bools, St0) ->
      Anno = lineno_anno(L, St0),
      {#c_var{name=V0},St} = new_var(Anno, 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) ->
      Anno = lineno_anno(L, St0),
      {#c_var{name=V0},St} = new_var(Anno, St0),
      V = {var,L,V0},
      True = {atom,L,true},
      E = make_bool_switch_guard(L, E1, V, True, E2),
  