Thank you very much and thanks to everyone that helped me build this. You, carter, and the others in the Haskell/Haskell.au IRC channels were a big help. The thank-you list would be huge if I tried to list everybody that made a library I used or whose blog post helped me along.
it's not very principled, tbh. uses error etc rather than proper sum types for returning errors.
To be fair, errors are implicitly encoded in the HTTP statuses and I'm not doing anything about Conduit's exceptions right now. This is something I'd like to fix later.
Ah right, I thought there might be another one I didn't know about! ocharles tends to be a lot more principled these days if it's any comfort :-)