anchor.diff:      {[V]=Mes,St1} = new_vars(1, St0),
       {#k_binary{segs=V},Mes,St1};
   get_match(#k_bin_seg{size=#k_literal{val=all},next={k_bin_end,[]}}=Seg, St0) ->
  -    {[S,N0],St1} = new_vars(2, St0),
  -    N = set_kanno(N0, [no_usage]),
  +    {[S,N],St1} = new_vars(2, St0),
       {Seg#k_bin_seg{seg=S,next=N},[S],St1};
   get_match(#k_bin_seg{}=Seg, St0) ->
  -    {[S,N0],St1} = new_vars(2, St0),
  -    N = set_kanno(N0, [no_usage]),
  +    {[S,N],St1} = new_vars(2, St0),
       {Seg#k_bin_seg{seg=S,next=N},[S,N],St1};
   get_match(#k_bin_int{}=BinInt, St0) ->
  -    {N0,St1} = new_var(St0),
  -    N = set_kanno(N0, [no_usage]),
  +    {N,St1} = new_var(St0),
       {BinInt#k_bin_int{next=N},[N],St1};
   get_match(#k_tuple{es=Es}, St0) ->
       {Mes,St1} = new_vars(length(Es), St0),
  
positive.code:     pat_list_vars([H,T]);
  pat_vars(#k_binary{segs=V}) ->
      pat_vars(V);
  pat_vars(#k_bin_seg{size=Size,seg=S}) ->
      {U1,New} = pat_list_vars([S]),
      {[],U2} = pat_vars(Size),
      {union(U1, U2),New};
  pat_vars(#k_bin_int{size=Size}) ->
      {[],U} = pat_vars(Size),
      {U,[]};
  pat_vars(#k_bin_end{}) -> {[],[]};
  pat_vars(#k_tuple{es=Es}) ->
      pat_list_vars(Es);
  
negative.code:     {#k_alt{anno=A,first=F1,then=T1},Used,St2};
  umatch(#k_select{anno=A,var=V,types=Ts0}, Br, St0) ->
      {Ts1,Tus,St1} = umatch_list(Ts0, Br, St0),
      Used = add_element(V#k_var.name, Tus),
      {#k_select{anno=A,var=V,types=Ts1},Used,St1};
  umatch(#k_type_clause{anno=A,type=T,values=Vs0}, Br, St0) ->
      {Vs1,Vus,St1} = umatch_list(Vs0, Br, St0),
  