A collection of type-classes generalizing the read/write/modify operations for
stateful variables provided by things like IORef, TVar, &c. Note that The
interface has changed a bit from the 0.2. version. "Ref" functions are now
called "Reference" and new "Ref" function exist with simpler signatures.
The new 'Ref' existential type provides a convenient monad-indexed reference
type, and the HasRef class indicates monads for which there is a default
reference type for every referent.