anchor.diff:  simple_seq([Ce|Ces], Then, Ses, Env, L, St0) ->
       %% Use erlang core compiler lib which does what we want.
       case is_simple(Ce) of
  -    true -> simple_seq(Ces, Then, [Ce|Ses], Env, L, St0);
  -    false ->
  -        {Cv,St1} = new_c_var(L, St0),
  -        {Rest,St2} = simple_seq(Ces, Then, [Cv|Ses], Env, L, St1),
  -        {#c_let{anno=[L],
  -            vars=[Cv],
  -            arg=Ce,
  -            body=Rest},St2}
  +        true -> simple_seq(Ces, Then, [Ce|Ses], Env, L, St0);
  +        false ->
  +            {Cv,St1} = new_c_var(L, St0),
  +            {Rest,St2} = simple_seq(Ces, Then, [Cv|Ses], Env, L, St1),
  +            {c_let([L], [Cv], Ce, Rest),St2}
       end;
   simple_seq([], Then, Ses, Env, L, St) ->
       Then(reverse(Ses), Env, L, St).
  
positive.code: %%     If = fun ([Ctest], _, _, St) ->
  %%          True = c_atom(true),
  %%          False = c_atom(false),
  %%          Ctrue = c_clause([True], True, Ctr, [L]),
  %%          Cfalse = c_clause([Fail], True, Cfa, [L]),
  %%          Cfail = if_fail(L, St),
  %%          {c_case(Ctest, [Ctrue,Cfalse,Cfail], [L]),St}
  %%      end,
  %%     simple_seq([Cte], If, Env, L, St3).
  
  
negative.code:     {Cv,St1} = new_c_var(L, St0),
      {Ccs,St2} = case_clauses(Cls, Env, L, St1),
      Cf = try_case_fail(L, St2),
      {Cv,c_case([L], Cv, Ccs ++ [Cf]),St2}.
  
  try_case_fail(L, St) ->
      Cv = c_var(omega),
  