-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A class for references in Haskell -- -- Reference is class which generalizes references and monads they exists -- in. It means that IORef, STRef and others can be accessed by common -- interface. @package reference @version 0.1 -- | Reference is class which generalizes references and monads they exists -- in. It means that IORef, STRef and others can be accessed by common -- interface. module Data.Reference -- | Class connecting mutable variable and monad it exists in. class Monad m => Reference r m newRef :: Reference r m => a -> m (r a) readRef :: Reference r m => r a -> m a writeRef :: Reference r m => r a -> a -> m () modifyRef :: Reference r m => r a -> (a -> m (a, b)) -> m b instance Reference TVar STM instance Reference MVar IO instance Reference (STRef s) (ST s) instance Reference IORef IO