(Вопрос для новичков. :-))
Предположим, у вас есть последовательность операций (проверка работоспособности во внешнем мире). Если здравомыслие терпит неудачу, приходится кричать.
Однако если Haskell требует определения обеих ветвей. Случай fail
- это монада. Однако я не уверен, какой тип нужно сгенерировать в другом случае. Компилятор считает, что предполагаемый тип - это IO a. Однако я не уверен, как создать запретный ввод-вывод a.
holler msg test =
do
if not test
then
fail msg
else
-- ??? no-op
main :: IO ()
main = do
holler "Go" True