Functor.MakeFunctor building an implementation of FUNCTOR over a monad.
module M : Monad.MONADtype 'a t = 'a M.tmap f is the function that maps values of t by f. The order of arguments is for use in function pipelines as fb = fa |> map (fun a -> (* ... *)).
( let+ ) ma f is map f a. This is a binding operator, and is used as let+ a = ma in f a