-- !!! check we can detect deadlock Control.Concurrent.newEmptyMVar >>= Control.Concurrent.takeMVar