Strict getContents

Joseph C. Sible josephcsible at
Wed Sep 11 22:56:55 UTC 2019

+1 to adding those non-lazy versions. Such functions could work
without having to half-close the handle, thus making it easier to
continue reading from a file after EOF (à la `tail -f`). (I've asked
about how to do this exact thing before at and this would give it a
trivial answer.)

Joseph C. Sible

On Wed, Sep 11, 2019 at 2:01 PM Li-yao Xia <lysxia at> wrote:
> Hello Libraries,
> In base, the functions which read all contents from a handle or file
> into one String currently all do lazy IO: readFile, getContents,
> hGetContents.
> The easiest way to get a strict alternative seems to be to explicitly
> force the list, for example using ```length contents `seq` pure ()```,
> but that's far from an obvious solution.
> Is there a better way?
> If not, I propose to add readFile', getContents', hGetContents', which
> don't do lazy IO.
> It regularly creates confusion among beginners, and it's easy to assume
> that lazy IO is benign if that's the only way to do certain operations,
> when it's arguably the wrong way to read files to begin with.
> Cheers,
> Li-yao
> _______________________________________________
> Libraries mailing list
> Libraries at

More information about the Libraries mailing list