Ppx_let is a ppx rewriter for monadic and applicative let bindings,
match expressions, and if expressions.
The aim of this rewriter is to make monadic and applicative code look
nicer by writing custom binders the same way that we normally bind
variables. In OCaml, the common way to bind the result of a computation
to a variable is:
let VAR = EXPR in BODY
ppx_let simply adds two new binders: let%bind and let%map. These are
rewritten into calls to the bind and map functions respectively. These
functions are expected to have
val map : 'a t -> f:('a -> 'b) -> 'b t
val bind : 'a t -> f:('a -> 'b t) -> 'b t
for some type t, as one might expect.
These functions are to be provided by the user, and are generally
expected to be part of the signatures of monads and applicatives
modules. This is the case for all monads and applicatives defined by
the Jane Street's Core suite of libraries.