Protocol for adding resetting functionality.
(defprotocol IReset (-reset! [o new-value] "Sets the value of o to new-value."))