triv.ml1 2 3 4 5 6 7 8 9 10 11 12 13 14(** A solitary type *) open Util (** [Triv] specifies a module with a single type [t]. It is used in composing other structures. *) module type S = sig type t end (** [make (Proxy : a proxy)] is a [(module T : S with t = a)]. *) let make (type a) (Proxy : a proxy) = (module struct type t = a end : S with type t = a)