Control.Concurrent.MVar.ReadOnly
data ReadOnlyMVar b
toReadOnlyMVar
takeMVar
readMVar
tryTakeMVar
withMVar