Control.Concurrent.MVarLock
data
Lock
newLock
acquireLock
releaseLock
withLock