-- | Updates the journal; updates are visible and durable when this function returns.
update :: u -> Journal a u -> IO ()
update u j = do
  force <- atomically $ updateNowAsyncFlush u j
  atomically force

-- | Create a Journal from two blocks, an identity update, and a function for applying
-- an update to the state.
update :: u -> Journal a u -> IO ()
update u j = do
  force <- atomically $ updateNowAsyncFlush u j
  atomically force

-- | Create a Journal from two blocks, an identity update, and a function for applying
-- an update to the state.
update u j = do
  force <- atomically $ updateNowAsyncFlush u j
  atomically force

-- | Create a Journal from two blocks, an identity update, and a function for applying
-- an update to the state.