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