module type Discriminator = sig type t val magic: string list -> string list -> t val magic_conv: div:(string option) -> conv:string list -> nums:string list -> string list -> t val main: t list -> unit end