anchor.diff:      True = c_atom(true),
       False = c_atom(false),
       Omega = c_var(omega),
  -    Ctrue = c_clause([L], [True], Ctr),
  -    Cfalse = c_clause([L], [False], Cfa),
  -    Cfail = c_clause([L,compiler_generated], [Omega], Omega),
  -    {c_case([L], Cte, [Ctrue,Cfalse,Cfail]),St3}.
  +    Ctrue = ann_c_clause([L], [True], Ctr),
  +    Cfalse = ann_c_clause([L], [False], Cfa),
  +    Cfail = ann_c_clause([L,compiler_generated], [Omega], Omega),
  +    {ann_c_case([L], Cte, [Ctrue,Cfalse,Cfail]),St3}.
   
   %% This produces code which is harder to optimise, strangely enough.
   %% comp_gif(Te, Tr, Fa, Env, L, St0) ->
  
positive.code:                   add_ibinding/5,get_gbinding/3]).
  
  -include("lfe_comp.hrl").
  -include_lib("compiler/src/core_parse.hrl").
  
  %% Define IS_MAP/1 macro for is_map/1 bif.
  -ifdef(HAS_MAPS).
  
negative.code:     comp_if(Test, True, False, Env, L, St).
  
  comp_if(Te, Tr, Fa, Env, L, St0) ->
      {Cte,St1} = comp_expr(Te, Env, L, St0),     %Test expression
      {Ctr,St2} = comp_expr(Tr, Env, L, St1),     %True expression
      {Cfa,St3} = comp_expr(Fa, Env, L, St2),     %False expression
      True = c_atom(true),
      False = c_atom(false),
      Ctrue = ann_c_clause([L], [True], Ctr),
      Cfalse = ann_c_clause([L], [False], Cfa),
      Cfail = if_fail(L, St3),
      {ann_c_case([L], Cte, [Ctrue,Cfalse,Cfail]),St3}.
  
  %% This produces code which is harder to optimise, strangely enough.
  %% comp_if(Te, Tr, Fa, Env, L, St0) ->
  %%     {Cte,St1} = comp_expr(Te, Env, L, St0),     %Test expression
  %%     {Ctr,St2} = comp_expr(Tr, Env, L, St1),     %True expression
  %%     {Cfa,St3} = comp_expr(Fa, Env, L, St2),     %False expression
  %%     If = fun ([Ctest], _, _, St) ->
  %%          True = c_atom(true),
  %%          False = c_atom(false),
  %%          Ctrue = ann_c_clause([L], [True], Ctr),
  %%          Cfalse = ann_c_clause([L], [Fail], Cfa),
  %%          Cfail = if_fail(L, St),
  %%          {ann_c_case([L], Ctest, [Ctrue,Cfalse,Cfail]),St}
  %%      end,
  %%     simple_seq([Cte], If, Env, L, St3).
  
  