module type S = sig ... end
type ('a, 'b) sum2 =
| Sum2A of 'a
| Sum2B of 'b
type ('a, 'b, 'c) sum3 =
| Sum3A of 'a
| Sum3B of 'b
| Sum3C of 'c
module Unit : sig ... end
module List (B : S) : sig ... end
module Set (B : S) : sig ... end
module Map (B : S) : sig ... end