sig
  val all : unit -> string list
  val register : string -> unit
  module type S =
    sig type t val pp : Format.formatter -> Pretty_printer.S.t -> unit end
  module Register :
    functor
      (M : sig
             type t
             val module_name : string
             val to_string : Pretty_printer.Register.t -> string
           end->
      sig val pp : Format.formatter -> M.t -> unit end
  module Register_pp :
    functor
      (M : sig
             type t
             val pp : Format.formatter -> t -> unit
             val module_name : string
           end->
      sig val pp : Format.formatter -> M.t -> unit end
end