I uploaded a change to hGetContents as D327 on Phabricator to address TRAC #9236. In particular, this generates an error when attempting to read from a closed handle instead of silently returning an empty string. I would love to get some help testing this against code that uses lazy I/O heavily, *especially* with pipes, sockets, and other such weirdness, if such things exist in the wild. I don't usually read haskell-cafe, so please send responses to my address as well as the list.
Thanks a lot,
David Feuer