anchor.diff:  descends(Va, Vb) ->
       [{NodeB, {CtrB, _T}}|RestB] = Vb,
       CtrA = 
  -	case proplists:get_value(NodeB, Va) of
  -	    undefined ->
  -		false;
  -	    {CA, _TSA} -> CA
  +	case lists:keyfind(NodeB, 1, Va) of
  +	    false           -> false;
  +	    {_, {CA, _TSA}} -> CA
   	end,
       case CtrA of
   	false -> false;
  
positive.code: % @private
  prune_vclock1(V,Now,BProps,HeadTime) ->
      % has a precondition that V is longer than small and older than young
      case length(V) > proplists:get_value(big_vclock,BProps) of
          true -> prune_vclock1(tl(V),Now,BProps);
          false ->
              case (Now - HeadTime) > proplists:get_value(old_vclock,BProps) of
                  true -> prune_vclock1(tl(V),Now,BProps);
                  false -> V
              end
      end.
  
  %% ===================================================================
  %% EUnit tests
  
negative.code: % @doc Get the counter value in VClock set from Node.
  -spec get_counter(Node :: vclock_node(), VClock :: vclock()) -> counter() | undefined.
  get_counter(Node, VClock) ->
      case lists:keyfind(Node, 1, VClock) of
  	{_, {Ctr, _TS}} -> Ctr;
  	false           -> undefined
      end.
  
  % @doc Get the timestamp value in a VClock set from Node.
  -spec get_timestamp(Node :: vclock_node(), VClock :: vclock()) -> timestamp() | undefined.
  get_timestamp(Node, VClock) ->
      case lists:keyfind(Node, 1, VClock) of
  	{_, {_Ctr, TS}} -> TS;
  	false           -> undefined
      end.
  
  % @doc Increment VClock at Node.
  