indubitably :: forall a b m r . (MonadRef m) => TransM a m b -> m b
indubitably f = do
  stack <- newRef []
  result <- runReaderT f stack
  transactions <- readRef stack
  forM_ transactions commit
  return result
indubitably :: forall a b m r . (MonadRef m) => TransM a m b -> m b
indubitably f = do
  stack <- newRef []
  result <- runReaderT f stack
  transactions <- readRef stack
  forM_ transactions commit
  return result
indubitably f = do
  stack <- newRef []
  result <- runReaderT f stack
  transactions <- readRef stack
  forM_ transactions commit
  return result