import public Data.IORef
import public Control.Monad.STinterface Ref : (Type -> Type) -> (Type -> Type) -> TypenewRef : a -> m (r a)readRef : r a -> m awriteRef : r a -> a -> m ()modifyRef : (a -> a) -> r a -> m aUpdates a value and returns the previous value
newRef : Ref m r => a -> m (r a)readRef : Ref m r => r a -> m awriteRef : Ref m r => r a -> a -> m ()modifyRef : Ref m r => (a -> a) -> r a -> m aUpdates a value and returns the previous value
modifyRef_ : Ref m r => (a -> a) -> r a -> m ()ForRef : Ref m r => Monad m => r a -> MonadState a m