    sig
      val open_box : int -> unit
      val close_box : unit -> unit
      val print_string : string -> unit
      val print_as : int -> string -> unit
      val print_int : int -> unit
      val print_float : float -> unit
      val print_char : char -> unit
      val print_bool : bool -> unit
      val print_space : unit -> unit
      val print_cut : unit -> unit
      val print_break : int -> int -> unit
      val print_flush : unit -> unit
      val print_newline : unit -> unit
      val force_newline : unit -> unit
      val print_if_newline : unit -> unit
      val set_margin : int -> unit
      val get_margin : unit -> int
      val set_max_indent : int -> unit
      val get_max_indent : unit -> int
      val set_max_boxes : int -> unit
      val get_max_boxes : unit -> int
      val over_max_boxes : unit -> bool
      val open_hbox : unit -> unit
      val open_vbox : int -> unit
      val open_hvbox : int -> unit
      val open_hovbox : int -> unit
      val open_tbox : unit -> unit
      val close_tbox : unit -> unit
      val print_tbreak : int -> int -> unit
      val set_tab : unit -> unit
      val print_tab : unit -> unit
      val set_ellipsis_text : string -> unit
      val get_ellipsis_text : unit -> string
      val set_formatter_out_channel : Pervasives.out_channel -> unit
      val set_formatter_output_functions :
        (string -> int -> int -> unit) -> (unit -> unit) -> unit
      val get_formatter_output_functions :
        unit -> (string -> int -> int -> unit) * (unit -> unit)
      val set_all_formatter_output_functions :
        out:(string -> int -> int -> unit) ->
        flush:(unit -> unit) ->
        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
      val get_all_formatter_output_functions :
        unit ->
        (string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
        (int -> unit)
      type formatter
      val formatter_of_out_channel : Pervasives.out_channel -> Format.formatter
      val std_formatter : Format.formatter
      val err_formatter : Format.formatter
      val formatter_of_buffer : Buffer.t -> Format.formatter
      val stdbuf : Buffer.t
      val str_formatter : Format.formatter
      val flush_str_formatter : unit -> string
      val make_formatter :
        (string -> int -> int -> unit) -> (unit -> unit) -> Format.formatter
      val pp_open_hbox : Format.formatter -> unit -> unit
      val pp_open_vbox : Format.formatter -> int -> unit
      val pp_open_hvbox : Format.formatter -> int -> unit
      val pp_open_hovbox : Format.formatter -> int -> unit
      val pp_open_box : Format.formatter -> int -> unit
      val pp_close_box : Format.formatter -> unit -> unit
      val pp_print_string : Format.formatter -> string -> unit
      val pp_print_as : Format.formatter -> int -> string -> unit
      val pp_print_int : Format.formatter -> int -> unit
      val pp_print_float : Format.formatter -> float -> unit
      val pp_print_char : Format.formatter -> char -> unit
      val pp_print_bool : Format.formatter -> bool -> unit
      val pp_print_break : Format.formatter -> int -> int -> unit
      val pp_print_cut : Format.formatter -> unit -> unit
      val pp_print_space : Format.formatter -> unit -> unit
      val pp_force_newline : Format.formatter -> unit -> unit
      val pp_print_flush : Format.formatter -> unit -> unit
      val pp_print_newline : Format.formatter -> unit -> unit
      val pp_print_if_newline : Format.formatter -> unit -> unit
      val pp_open_tbox : Format.formatter -> unit -> unit
      val pp_close_tbox : Format.formatter -> unit -> unit
      val pp_print_tbreak : Format.formatter -> int -> int -> unit
      val pp_set_tab : Format.formatter -> unit -> unit
      val pp_print_tab : Format.formatter -> unit -> unit
      val pp_set_margin : Format.formatter -> int -> unit
      val pp_get_margin : Format.formatter -> unit -> int
      val pp_set_max_indent : Format.formatter -> int -> unit
      val pp_get_max_indent : Format.formatter -> unit -> int
      val pp_set_max_boxes : Format.formatter -> int -> unit
      val pp_get_max_boxes : Format.formatter -> unit -> int
      val pp_over_max_boxes : Format.formatter -> unit -> bool
      val pp_set_ellipsis_text : Format.formatter -> string -> unit
      val pp_get_ellipsis_text : Format.formatter -> unit -> string
      val pp_set_formatter_out_channel :
        Format.formatter -> Pervasives.out_channel -> unit
      val pp_set_formatter_output_functions :
        Format.formatter ->
        (string -> int -> int -> unit) -> (unit -> unit) -> unit
      val pp_get_formatter_output_functions :
        Format.formatter ->
        unit -> (string -> int -> int -> unit) * (unit -> unit)
      val pp_set_all_formatter_output_functions :
        Format.formatter ->
        out:(string -> int -> int -> unit) ->
        flush:(unit -> unit) ->
        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
      val pp_get_all_formatter_output_functions :
        Format.formatter ->
        unit ->
        (string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
        (int -> unit)
      val fprintf : Format.formatter -> ('a, Format.formatter, unit) format -> 'a
      val printf : ('a, Format.formatter, unit) format -> 'a
      val eprintf : ('a, Format.formatter, unit) format -> 'a
      val sprintf : ('a, unit, string) format -> 'a
      val bprintf : Buffer.t -> ('a, Format.formatter, unit) format -> 'a
    end