sig
  module Show_num :
    sig
      type a = Num.num
      val format : Format.formatter -> a -> unit
      val format_list : Format.formatter -> a list -> unit
      val show : a -> string
      val show_list : a list -> string
    end
  module Eq_num : sig type a = Num.num val eq : a -> a -> bool end
  module Typeable_num :
    sig
      type a = Num.num
      val type_rep : Deriving_Typeable.TypeRep.t Lazy.t
      val has_type : Deriving_Typeable.dynamic -> bool
      val cast : Deriving_Typeable.dynamic -> a option
      val throwing_cast : Deriving_Typeable.dynamic -> a
      val make_dynamic : a -> Deriving_Typeable.dynamic
      val mk : a -> Deriving_Typeable.dynamic
    end
  module Dump_num :
    sig
      type a = Num.num
      val to_buffer : Buffer.t -> a -> unit
      val to_string : a -> string
      val to_channel : out_channel -> a -> unit
      val from_stream : char Stream.t -> a
      val from_string : string -> a
      val from_channel : in_channel -> a
    end
  module Pickle_num :
    sig
      type a = Num.num
      module Typeable :
        sig
          type a = a
          val type_rep : Deriving_Typeable.TypeRep.t Lazy.t
          val has_type : Deriving_Typeable.dynamic -> bool
          val cast : Deriving_Typeable.dynamic -> a option
          val throwing_cast : Deriving_Typeable.dynamic -> a
          val make_dynamic : a -> Deriving_Typeable.dynamic
          val mk : a -> Deriving_Typeable.dynamic
        end
      module Eq : sig type a = a val eq : a -> a -> bool end
      val pickle : a -> Deriving_Pickle.id Deriving_Pickle.Write.m
      val unpickle : Deriving_Pickle.id -> a Deriving_Pickle.Read.m
      val to_buffer : Buffer.t -> a -> unit
      val to_string : a -> string
      val to_channel : out_channel -> a -> unit
      val from_stream : char Stream.t -> a
      val from_string : string -> a
      val from_channel : in_channel -> a
    end
end