Module Enum

module type S = sig ... end
type 'a t = (module S with type t = 'a)
val enum : 'a t -> (string * 'a) list
val to_string_hum : 'a t -> 'a -> string

Map a constructor name to a command-line string: downcase the name and convert _ to -.

val check_field_name : 'a t -> 'a -> (___) Core_kernel.Field.t_with_perm -> unit
val assert_alphabetic_order_exn : Core_kernel.Source_code_position.t -> 'a t -> unit
type ('a, 'b) make_param = ?represent_choice_with:string -> ?aliases:string list -> string -> doc:string -> 'a t -> 'b Core_kernel.Command.Param.t
val make_param : f:('a Core_kernel.Command.Arg_type.t -> 'b Core_kernel.Command.Flag.t) -> ('a'b) make_param
val make_param_optional_with_default_doc : default:'a -> ('a'a) make_param
val arg_type : 'a t -> 'a Core_kernel.Command.Arg_type.t
val doc : ?represent_choice_with:string -> 'a t -> doc:string -> string
module Make_stringable (M : S) : Core_kernel.Stringable with type t := M.t