I propose the following tutorial
https://www.sinerj.org/~loyer/caqti_ppx_rapper/caqti_ppx_rapper/index.html
It is about Caqti and ppx_rapper use. The tutorial also uses the Lwt_result
monad and its (let*)
binding operator. This avoid any explicit error handling.
I hope this will be interesting, and will be glad to get some advice to improve this first copy.
Perhaps I should add a section about processing a list
of queries (ex: a query returns a list of item and we want to execute a new query for each row)