Control.Concurrent.STM.Lock
data Lock
new
newAcquired
acquire
tryAcquire
release
with
tryWith
wait
locked