anchor.diff:  %%  test by checking the test and only adding one when we know the
   %%  test won't automatically return a boolean value.
   
  +comp_guard_test([quote,Bool], _, _, St) when is_boolean(Bool) ->
  +    {c_atom(Bool),St};                          %A small optimisation
   comp_guard_test([call,[quote,erlang],[quote,Op]|Args]=Test, Env, L, St) ->
       comp_guard_test_1(Test, Op, Args, Env, L, St);
   comp_guard_test([Op|Args]=Test, Env, L, St) ->
  -    comp_guard_test_1(Test, Op, Args, Env, L, St).
  +    comp_guard_test_1(Test, Op, Args, Env, L, St);
  +comp_guard_test(Symb, _, L, St) when is_atom(Symb) ->
  +    Ann = comp_gen_anno(L, St),
  +    {ann_c_call(Ann, c_atom(erlang), c_atom('=:='), [c_var(Symb),c_atom(true)]),
  +     St};
  +comp_guard_test(_, _, _, St) ->
  +    %% Everything else always will always fail.
  +    {c_atom(false),St}.
   
   comp_guard_test_1(Test, Op, Args, Env, L, St0) ->
       Ar = length(Args),
  
positive.code: 
  fail_clause(Pats, Arg, Fann, L, St) ->
      Ann = line_file_anno(L, St),
      ann_c_clause([L,compiler_generated],        %It is compiler generated
                   Pats, ann_c_primop(Fann ++ Ann, c_atom(match_fail), [Arg])).
  
  %% comp_case(Expr, Clauses, Env, Line, State) -> {c_case(),State}.
  
negative.code:     {Cv,Cc,St2} = try_case(Case, Env, L, St1),
      {[_,Val,Info]=Evs,St3} = new_c_vars(3, L, St2), %Tag, Value, Info
      After = raise_primop([Info,Val], L, St2),
      Ann = line_file_anno(L, St3),
      {ann_c_try(Ann, Ce, [Cv], Cc, Evs, After),St3};
  comp_try(E, Case, Catch, [], Env, L, St0) ->
      %% No after - (try E [(case ...)] (catch ...))
      {Ce,St1} = comp_expr(E, Env, L, St0),
      {Cv,Cc,St2} = try_case(Case, Env, L, St1),
      {Evs,Ecs,St3} = try_exception(Catch, Env, L, St2),
      Ann = line_file_anno(L, St3),
      {ann_c_try(Ann, Ce, [Cv], Cc, Evs, Ecs),St3};
  comp_try(E, [], [], After, Env, L, St0) ->
      %% Just after - (try E (after ...))
      {Ce,St1} = comp_expr(E, Env, L, St0),
  