úΓ Ä P(c) Harvard University 2006-2011 (c) Geoffrey Mainland 2011-2014 BSD-style*Geoffrey Mainland <mainland@cs.drexel.edu> experimental non-portableSafe3579-Atomically mutate the contents of a referenceuStrict version of atomicModifyRef. This forces both the value stored in the reference as well as the value returned.The µ type class abstracts over the details of manipulating references, allowing one to write code that uses references and can operate in any monad that supports reference operations.Create a new referenceRead the value of a reference Write a new value to a reference"Mutate the contents of a referenceStrict version of #  !"    !"#      !"#$%reffd_JrLijdeTC8K0Gwb8zFH9o7Control.Monad.RefMonadAtomicRefatomicModifyRefatomicModifyRef'MonadRefnewRefreadRefwriteRef modifyRef modifyRef'$fMonadAtomicRefrWriterT$fMonadAtomicRefrWriterT0$fMonadAtomicRefrStateT$fMonadAtomicRefrStateT0$fMonadAtomicRefrReaderT$fMonadAtomicRefrMaybeT$fMonadAtomicRefrListT$fMonadAtomicRefrIdentityT$fMonadAtomicRefrErrorT$fMonadAtomicRefrContT$fMonadAtomicRefTVarSTM$fMonadAtomicRefIORefIO$fMonadRefrWriterT$fMonadRefrWriterT0$fMonadRefrStateT$fMonadRefrStateT0$fMonadRefrReaderT$fMonadRefrMaybeT$fMonadRefrListT$fMonadRefrIdentityT$fMonadRefrExceptT$fMonadRefrErrorT$fMonadRefrContT$fMonadRefTVarSTM$fMonadRefIORefIO$fMonadRefSTRefST