sig
  type 'a pp = Stdlib.Format.formatter -> '-> unit
  val print_string : string Pp.pp
  val print_option : 'Pp.pp -> 'a option Pp.pp
  val print_option_or_default : string -> 'Pp.pp -> 'a option Pp.pp
  val print_list_pre : unit Pp.pp -> 'Pp.pp -> 'a list Pp.pp
  val print_list_suf : unit Pp.pp -> 'Pp.pp -> 'a list Pp.pp
  val print_list : unit Pp.pp -> 'Pp.pp -> 'a list Pp.pp
  val print_list_or_default :
    string -> unit Pp.pp -> 'Pp.pp -> 'a list Pp.pp
  val print_list_par :
    (Stdlib.Format.formatter -> unit -> 'a) -> 'Pp.pp -> 'b list Pp.pp
  val print_list_next : unit Pp.pp -> (bool -> 'Pp.pp) -> 'a list Pp.pp
  val print_list_delim :
    start:unit Pp.pp ->
    stop:unit Pp.pp -> sep:unit Pp.pp -> 'Pp.pp -> 'b list Pp.pp
  val print_pair_delim :
    unit Pp.pp ->
    unit Pp.pp -> unit Pp.pp -> 'Pp.pp -> 'Pp.pp -> ('a * 'b) Pp.pp
  val print_pair : 'Pp.pp -> 'Pp.pp -> ('a * 'b) Pp.pp
  val print_iter1 :
    (('-> unit) -> '-> unit) -> unit Pp.pp -> 'Pp.pp -> 'Pp.pp
  val print_iter2 :
    (('-> '-> unit) -> '-> unit) ->
    unit Pp.pp -> unit Pp.pp -> 'Pp.pp -> 'Pp.pp -> 'Pp.pp
  val print_iter22 :
    (('-> '-> unit) -> '-> unit) ->
    unit Pp.pp -> (Stdlib.Format.formatter -> '-> '-> unit) -> 'Pp.pp
  type formatted = (unit, unit, unit, unit, unit, unit) Stdlib.format6
  val empty_formatted : Pp.formatted
  val space : unit Pp.pp
  val alt : unit Pp.pp
  val alt2 : unit Pp.pp
  val newline : unit Pp.pp
  val newline2 : unit Pp.pp
  val dot : unit Pp.pp
  val comma : unit Pp.pp
  val star : unit Pp.pp
  val simple_comma : unit Pp.pp
  val semi : unit Pp.pp
  val colon : unit Pp.pp
  val underscore : unit Pp.pp
  val slash : unit Pp.pp
  val equal : unit Pp.pp
  val arrow : unit Pp.pp
  val lbrace : unit Pp.pp
  val rbrace : unit Pp.pp
  val lsquare : unit Pp.pp
  val rsquare : unit Pp.pp
  val lparen : unit Pp.pp
  val rparen : unit Pp.pp
  val lchevron : unit Pp.pp
  val rchevron : unit Pp.pp
  val nothing : 'Pp.pp
  val string : string Pp.pp
  val float : float Pp.pp
  val int : int Pp.pp
  val bool : bool Pp.pp
  val constant_string : string -> unit Pp.pp
  val formatted : Stdlib.Format.formatter -> Pp.formatted -> unit
  val constant_formatted : Pp.formatted -> unit Pp.pp
  val print0 : unit Pp.pp
  val hov : int -> 'Pp.pp -> 'Pp.pp
  val indent : int -> 'Pp.pp -> 'Pp.pp
  val add_flush : 'Pp.pp -> 'Pp.pp
  val asd : 'Pp.pp -> 'Pp.pp
  val open_formatter :
    ?margin:int -> Stdlib.out_channel -> Stdlib.Format.formatter
  val close_formatter : Stdlib.Format.formatter -> unit
  val open_file_and_formatter :
    ?margin:int -> string -> Stdlib.out_channel * Stdlib.Format.formatter
  val close_file_and_formatter :
    Stdlib.out_channel * Stdlib.Format.formatter -> unit
  val print_in_file_no_close :
    ?margin:int ->
    (Stdlib.Format.formatter -> unit) -> string -> Stdlib.out_channel
  val print_in_file :
    ?margin:int -> (Stdlib.Format.formatter -> unit) -> string -> unit
  val print_list_opt :
    unit Pp.pp ->
    (Stdlib.Format.formatter -> '-> bool) ->
    Stdlib.Format.formatter -> 'a list -> bool
  val string_of : ?max_boxes:int -> 'Pp.pp -> '-> string
  val string_of_wnl : 'Pp.pp -> '-> string
  val wnl : Stdlib.Format.formatter -> unit
  val sprintf :
    ('b, Stdlib.Format.formatter, unit, string) Stdlib.format4 -> 'b
  val sprintf_wnl :
    ('b, Stdlib.Format.formatter, unit, string) Stdlib.format4 -> 'b
  val html_char : char Pp.pp
  val html_string : string Pp.pp
  module Ansi :
    sig val set_column : Stdlib.Format.formatter -> int -> unit end
  type formatter = Stdlib.Format.formatter
end