sig
  type 'a show
  val to_formatter : 'Show.show -> Format.formatter -> '-> unit
  val to_formatter' : 'Show.show -> Format.formatter -> '-> unit
  val to_string : 'Show.show -> '-> string
  val append_to : 'Show.show -> '-> Buffer.t -> unit
  val print : 'Show.show -> '-> unit
  val print_line : 'Show.show -> '-> unit
  val shower_from_formatter :
    ?size_hint:int -> (Format.formatter -> '-> unit) -> 'Show.show
  val shower_from_to_string :
    ?size_hint:int -> ('-> string) -> 'Show.show
  val any_shower : 'Show.show
  val func_shower : ('-> 'b) Show.show
  val int_shower : int Show.show
  val float_shower : float Show.show
  val bool_shower : bool Show.show
  val char_shower : char Show.show
  val char_shower' : char Show.show
  val string_shower : string Show.show
  val string_shower' : string Show.show
  val unit_shower : unit Show.show
  val option_shower : 'Show.show -> 'a option Show.show
  val list_shower : 'Show.show -> 'a list Show.show
  val assoc_list_shower :
    'Show.show -> 'Show.show -> ('a * 'b) list Show.show
  val listlike_shower :
    string -> string -> string -> 'Show.show -> 'a list Show.show
  val assoc_shower : 'Show.show -> 'Show.show -> ('a * 'b) Show.show
  val tuple_shower2 : 'Show.show -> 'Show.show -> ('a * 'b) Show.show
  val tuple_shower3 :
    'Show.show -> 'Show.show -> 'Show.show -> ('a * 'b * 'c) Show.show
  val tuple_shower4 :
    'Show.show ->
    'Show.show ->
    'Show.show -> 'Show.show -> ('a * 'b * 'c * 'd) Show.show
  val tuple_shower5 :
    'Show.show ->
    'Show.show ->
    'Show.show ->
    'Show.show -> 'Show.show -> ('a * 'b * 'c * 'd * 'e) Show.show
  val tuple_shower6 :
    'Show.show ->
    'Show.show ->
    'Show.show ->
    'Show.show ->
    'Show.show -> 'Show.show -> ('a * 'b * 'c * 'd * 'e * 'f) Show.show
  val field_shower : string -> ('-> 'b) -> 'Show.show -> 'Show.show
  val record_shower : 'Show.show list -> 'Show.show
end