# Module Deriving_Enum

    module Deriving_Enum: sig .. end

    module type Enum = sig .. end

    module Defaults: functor (E : sig

    type a

    val numbering : (a * int) list

    end) -> Enum  with type a = E.a

    module Defaults': functor (E : sig

    type a

    val from_enum : a -> int

    val to_enum : int -> a

    end) -> functor (B : Deriving_Bounded.Bounded  with type a = E.a) -> Enum  with type a = B.a

    module Enum_bool: Enum  with type a = bool

    module Enum_char: Enum  with type a = char

    module Enum_int: Enum  with type a = int

    module Enum_unit: Enum  with type a = unit