anchor.diff:      {calc, W} ->
         case V1 of
   	V1 when is_list(V1) ->
  -	  io:format(user, "Inserting {~p,~p} = {i,~p,[]}~n", [X,KD,V1]),
  +	  io:format("Inserting {~p,~p} = {i,~p,[]}~n", [X,KD,V1]),
   	  Tr = tdtree:insert({X,KD,{i,V1,[]}}, S0#state.data);
   	V1 ->
  -	  io:format(user, "Inserting {~p,~p} = ~p~n", [X,KD,V1]),
  +	  io:format("Inserting {~p,~p} = ~p~n", [X,KD,V1]),
   	  Tr = tdtree:insert({X,KD,V1}, S0#state.data)
         end,
         S1 = S0#state{data = Tr, ck = S0#state.ck + 1},
  
positive.code:   KD = lists:keysort(1, tset:restrict_domain(K, D)),
    case tdtree:lookup({X,KD}, S0#state.data) of
      [] ->
        io:format(user, "Inserting {~p,~p} = ~p~n", [X,KD,{calc,W0}]),
        Tr = tdtree:insert({X,KD,{calc,W0}}, S0#state.data),
        S2 = S0#state{data = Tr, ck = S0#state.ck + 1},
        {reply, {{calc,W0}, S2#state.ck},  S2};
  
negative.code: 	true ->
  	  %% FIXME
  	  %% Threads can be <= to others which is wrong, but it works...
  	  %% io:format("Thread ~p is less than or equal to ~p~n", [W1, W0]),
  	  {reply, hang, S0};
  	false ->
  	  {reply, {V, S0#state.ck}, S0}
  