Как я могу "убить" чистый расчет, который занимает слишком много времени? Я попробовал
import System.Timeout
fact 0 = 1
fact n = n * (fact $ n - 1)
main = do maybeNum <- timeout (10 ^ 7) $ (return . fact) 99999999
print maybeNum
Однако это не работает. Замените (return . fact) 99999999
на "реальную" функцию ввода-вывода, например getLine
, и это работает как ожидалось.