Dear Evgeny, I am not sure how up-to-date they are, but you may be interested in the following notes by Xavier: https://caml.inria.fr/pub/papers/xleroy-recursive_modules-03.pdf Cheers, Nicolás On Fri, Dec 22, 2017 at 10:13 AM, Evgeny Roubinchtein wrote: > Dear OCaml users and developers, > > I find the "Advanced examples" sub-section of the "First-class modules" > section in the reference manual (http://caml.inria.fr/pub/ > docs/manual-ocaml/extn.html#sec244) to be a bit short on motivation. > > I appreciate that it may be, "possible to parametrize some code over the > implementation of a module without using a functor", but I am having > trouble imagining why one would want to do such a thing. Also, the > "without using a functor" part comes across (to me) as a bit hollow, given > that the example provided _does_ in fact use [Set.Make] functor: it just > hides the invocation of that functor inside the definition of the > [make_set] function, so it reads (to me) like just a round-about way to > invoke the [Set.Make] functor. > > Also, was a description of first-class modules in OCaml published in > either a paper or a thesis, or perhaps a journal article? > > Thank you in advance! > > -- > Best, > Evgeny ("Zhenya") >