The crashing was caused by `Option.value_exn` throwing an exception, but that was only because the code was not distinguishing between three different states: a successful read, and error in parsing, and an EOF. It was conflating the last two. In order to separate them, changes to both `Request` and `Cohttp_async` are necessary. Make sense?