rollback :: (MonadRef m) => TRef m a -> m ()
rollback cell = do
  com <- readRef (committed cell)
  writeRef (current cell) com
rollback :: (MonadRef m) => TRef m a -> m ()
rollback cell = do
  com <- readRef (committed cell)
  writeRef (current cell) com
rollback cell = do
  com <- readRef (committed cell)
  writeRef (current cell) com