If it were mutable, the event dequeuing code would have to copy it every time an event needs to be delivered. I decided to shift the cost to the code that _adds_ handlers, instead of the code that _uses_ them.