public VectorClock Increment(Node node)
        {
            if (!Values.TryGetValue(node, out var currentTimestamp))
            {
                return(this);
            }

            return(new VectorClock(Values.SetItem(node, currentTimestamp + 1)));
        }
        public VectorClock Prune(Node removedNode)
        {
            var newValues = Values.Remove(removedNode);

            return(!ReferenceEquals(newValues, Values) ? new VectorClock(newValues) : this);
        }