Я сделал очень трудоемкий алгоритм, который в результате выдает короткую строку. Когда я пытаюсь распечатать его (через putStrLn), он появляется на экране символ за символом. Я понял, почему это произошло, и попытался выполнить проверку строки перед фактической печатью.
myPrint !str = putStrLn str
Но это очень мало помогает. Когда я запустил программу в режиме отладки, я заметил, что! Str принудительно вычисляет только первый символ.
Кто-нибудь знает, почему это так и как с этим бороться?