Data.Binary.Getが遅延していないのはなぜですか? それとも、ここで何か間違ったことをしていますか?
import Data.ByteString.Lazy (pack)
import Data.Binary.Get (runGet, isEmpty, getWord8)
getWords = do
empty <- isEmpty
if empty
then return []
else do
w <- getWord8
ws <- getWords
return $ w:ws
main = print $ take 10 $ runGet getWords $ pack $ repeat 1
このメイン関数は、10 ワードを出力する代わりにハングします。