anchor.diff:                   ok
            end(),
   
  -    both = fun(A) when A#r.a, A#r.b -> both 
  -           end(#r{a = true, b = true}),
  +    both = rec_call(fun(A) when A#r.a, A#r.b -> both end, #r{a = true, b = true}),
   
       ok = fun() ->
                    F = fun(A, B) when ((A#r1.a) orelse (B#r2.a)) 
  
positive.code:            (_) -> b
          end(#r1{a = 1}),
  
      ok = fun() ->
                   F = fun(A) when not (A#r.a =:= 1) -> yes;
                          (_) -> no
  
negative.code:            (_) -> p
          end(#r1{a = 2}),
  
      o = rec_call(fun(A) when (A#r1.a =:= 2) orelse (A#r2.a =:= 1) -> o end, #r1{a = 2}),
      o = rec_call(fun(A) when A#r1.a =:= 2; A#r2.a =:= 1 -> o end, #r2{a = 1}),
  
      3 = rec_call(fun(A) when A#r1.a > 3, record(A, r1) -> 3 end, #r1{a = 5}),
  
      ok = fun() ->
                   F = fun(A) when (A#r2.a =:= 1) orelse (A#r2.a) -> 2;
  