-- | Updates the journal; invariant here is that after inner `STM ()` is run, updates are durable
-- and also visible in memory. Updates _may_ be durable and visible before
-- that but this isn't guaranteed.
updateAsync :: u -> Journal a u -> STM (STM ())
updateAsync u j = append (updates j) False u
updateAsync :: u -> Journal a u -> STM (STM ())
updateAsync u j = append (updates j) False u
updateAsync u j = append (updates j) False u