hGetContents слишком ленив

У меня есть следующий фрагмент кода, который я передаю вwithFile:

text <- hGetContents hand 
let code = parseCode text
return code

Здесь hand — допустимый дескриптор файла, открытый с помощью ReadModeи parseCode— это моя собственная функция, которая считывает ввод и возвращает «может быть». Как бы то ни было, функция завершается ошибкой и ничего не возвращает. Если вместо этого я напишу :

text <- hGetContents hand 
putStrLn text
let code = parseCode text
return code

, я получу Справедливо, как и должно быть.

Если я делаю openFileи hCloseсам, у меня та же проблема. Почему это происходит? Как я могу решить это чисто?

Спасибо

13
задан Marek Sapota 13 June 2012 в 02:35
поделиться