[Haskell-cafe] Too much strictness in binary-0.5.0.2
Khudyakov Alexey
alexey.skladnoy at gmail.com
Fri Sep 18 16:36:10 EDT 2009
Hello
I run into problems with new binary package. Following function reads a list
of elements one by one until end of stream. List is very long (won't fit into
memory).
In binary-0.5.0.1 and earlier it read list lazily. Now it seems that it tries
to read whole list to memory. Program does not produce any output and memory
usage steadily grows.
> getStream :: Get a -> Get [a]
> getStream getter = do
> empty <- isEmpty
> if empty
> then return []
> else do x <- getter
> xs <- getStream getter
> return (x:xs)
How could I add laziness to this function to revert to old behavior.
--
Khudyakov Alexey
More information about the Haskell-Cafe
mailing list