anchor.diff:  body(#k_seq{arg=Ke,body=Kb}, I, Vdb0) ->
       %%ok = io:fwrite("life ~w:~p~n", [?LINE,{Ke,I,Vdb0}]),
       A = get_kanno(Ke),
  -    Vdb1 = use_vars(A#k.us, I, new_vars(A#k.ns, I, Vdb0)),
  +    Vdb1 = use_vars(union(A#k.us, A#k.ns), I, Vdb0),
       {Es,MaxI,Vdb2} = body(Kb, I+1, Vdb1),
       E = expr(Ke, I, Vdb2),
       {[E|Es],MaxI,Vdb2};
   body(Ke, I, Vdb0) ->
       %%ok = io:fwrite("life ~w:~p~n", [?LINE,{Ke,I,Vdb0}]),
       A = get_kanno(Ke),
  -    Vdb1 = use_vars(A#k.us, I, new_vars(A#k.ns, I, Vdb0)),
  +    Vdb1 = use_vars(union(A#k.us, A#k.ns), I, Vdb0),
       E = expr(Ke, I, Vdb1),
       {[E],I,Vdb1}.
   
  
positive.code: 
  -export([vdb_find/2]).
  
  -import(lists, [member/2,map/2,foldl/3,reverse/1,sort/1]).
  -import(ordsets, [add_element/2,intersection/2,union/2]).
  
  -include("v3_kernel.hrl").
  
negative.code:     %% the body and handler. Add try tag 'variable'.
      Ab = get_kanno(Kb),
      Ah = get_kanno(Kh),
      Tdb1 = use_vars(union(Ab#k.us, Ah#k.us), I+3, Tdb0),
      Tdb2 = vdb_sub(I, I+2, Tdb1),
      Vnames = fun (Kvar) -> Kvar#k_var.name end,	%Get the variable names
      {Aes,_,Adb} = body(Ka, I+2, add_var({catch_tag,I+1}, I+1, 1000000, Tdb2)),
      {Bes,_,Bdb} = body(Kb, I+4, new_vars(sort(map(Vnames, Vs)), I+3, Tdb2)),
      {Hes,_,Hdb} = body(Kh, I+4, new_vars(sort(map(Vnames, Evs)), I+3, Tdb2)),
      #l{ke={try_enter,#l{ke={block,Aes},i=I+1,vdb=Adb,a=[]},
  	   var_list(Vs),#l{ke={block,Bes},i=I+3,vdb=Bdb,a=[]},
  	   var_list(Evs),#l{ke={block,Hes},i=I+3,vdb=Hdb,a=[]}},
  