Module type Enumeration_intf.Enumeration

type ('a, 'witness) t = private {
all : 'a list;
}
module type S = S with type ('a, 'witness) enumeration := ('a'witness) t
module type S_fc = S_fc with type ('a, 'witness) enumeration := ('a'witness) t
module Make : functor (T : sig ... end) -> S with type t := T.t
val make : all:'a list -> (module S_fc with type enumerable_t = 'a)