Как сделать так, чтобы блок do возвращался раньше?

Я пытаюсь найти веб-страницу с помощью Haskell и скомпилировать результаты в объект.

Если по какой-либо причине я могуЧтобы получить все элементы со страниц, я хочу прекратить попытки обработать страницу и вернуться рано.

Например:

scrapePage :: String -> IO ()
scrapePage url = do
  doc > css "head.title" >>> getText
  when (isNothing title) (return ())
  date >> css "span.dateTime" ! "data-utc"
  when (isNothing date) (return ())
  -- etc
  -- make page object and send it to db
  return ()

Проблема заключается вwhen Безразлично»t остановить блок do или помешать выполнению других частей.

Как правильно это сделать?

Ответы на вопрос(3)

Ваш ответ на вопрос