I wrote a small blog post about how some types are intended for multiple use cases and it’s not always grerat. It uses the Stdlib as a small example in the intro, but the real focus is on Lwt.
Feedback (on the post or on the points of Lwt that are discussed) is very welcome. I’ll probably start working on improving the Lwt bits soon so let me know what you think.