sig
  type out_channel
  val stdout : Lm_printf.out_channel
  val stderr : Lm_printf.out_channel
  val stdstr : Lm_printf.out_channel
  val flush_stdstr : unit -> string
  val open_out : string -> Lm_printf.out_channel
  val open_out_bin : string -> Lm_printf.out_channel
  val output_char : Lm_printf.out_channel -> char -> unit
  val output_string : Lm_printf.out_channel -> string -> unit
  val prerr_char : char -> unit
  val prerr_int : int -> unit
  val prerr_string : string -> unit
  val flush : Lm_printf.out_channel -> unit
  val eflush : Lm_printf.out_channel -> unit
  val eprintf : ('a, Lm_printf.out_channel, unit) Pervasives.format -> 'a
  val printf : ('a, Lm_printf.out_channel, unit) Pervasives.format -> 'a
  val sprintf : ('a, unit, string) Pervasives.format -> 'a
  val fprintf :
    Lm_printf.out_channel ->
    ('a, Lm_printf.out_channel, unit) Pervasives.format -> 'a
  val bprintf :
    Buffer.t -> ('a, Lm_printf.out_channel, unit) Pervasives.format -> 'a
  val print_any_list :
    (Lm_printf.out_channel -> '-> unit) ->
    Lm_printf.out_channel -> 'a list -> unit
  val print_string_list : Lm_printf.out_channel -> string list -> unit
  val print_int_list : Lm_printf.out_channel -> int list -> unit
  val open_box : int -> unit
  val open_vbox : int -> unit
  val open_hbox : unit -> unit
  val open_hvbox : int -> unit
  val open_hovbox : 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_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 :
    (string -> int -> int -> unit) ->
    (unit -> unit) -> (unit -> unit) -> (int -> unit) -> unit
  val get_all_formatter_output_functions :
    unit ->
    (string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
    (int -> unit)
  type formatter = Lm_printf.out_channel
  val formatter_of_out_channel :
    Pervasives.out_channel -> Lm_printf.formatter
  val std_formatter : Lm_printf.formatter
  val err_formatter : Lm_printf.formatter
  val str_formatter : Lm_printf.formatter
  val stdbuf : Buffer.t
  val flush_str_formatter : unit -> string
  val formatter_of_buffer : Buffer.t -> Lm_printf.formatter
  val make_formatter :
    (string -> int -> int -> unit) -> (unit -> unit) -> Lm_printf.formatter
  val pp_open_hbox : Lm_printf.formatter -> unit -> unit
  val pp_open_vbox : Lm_printf.formatter -> int -> unit
  val pp_open_hvbox : Lm_printf.formatter -> int -> unit
  val pp_open_hovbox : Lm_printf.formatter -> int -> unit
  val pp_open_box : Lm_printf.formatter -> int -> unit
  val pp_close_box : Lm_printf.formatter -> unit -> unit
  val pp_print_string : Lm_printf.formatter -> string -> unit
  val pp_print_as : Lm_printf.formatter -> int -> string -> unit
  val pp_print_int : Lm_printf.formatter -> int -> unit
  val pp_print_float : Lm_printf.formatter -> float -> unit
  val pp_print_char : Lm_printf.formatter -> char -> unit
  val pp_print_bool : Lm_printf.formatter -> bool -> unit
  val pp_print_break : Lm_printf.formatter -> int -> int -> unit
  val pp_print_cut : Lm_printf.formatter -> unit -> unit
  val pp_print_space : Lm_printf.formatter -> unit -> unit
  val pp_force_newline : Lm_printf.formatter -> unit -> unit
  val pp_print_flush : Lm_printf.formatter -> unit -> unit
  val pp_print_newline : Lm_printf.formatter -> unit -> unit
  val pp_print_if_newline : Lm_printf.formatter -> unit -> unit
  val pp_open_tbox : Lm_printf.formatter -> unit -> unit
  val pp_close_tbox : Lm_printf.formatter -> unit -> unit
  val pp_print_tbreak : Lm_printf.formatter -> int -> int -> unit
  val pp_set_tab : Lm_printf.formatter -> unit -> unit
  val pp_print_tab : Lm_printf.formatter -> unit -> unit
  val pp_set_margin : Lm_printf.formatter -> int -> unit
  val pp_get_margin : Lm_printf.formatter -> unit -> int
  val pp_set_max_indent : Lm_printf.formatter -> int -> unit
  val pp_get_max_indent : Lm_printf.formatter -> unit -> int
  val pp_set_max_boxes : Lm_printf.formatter -> int -> unit
  val pp_get_max_boxes : Lm_printf.formatter -> unit -> int
  val pp_over_max_boxes : Lm_printf.formatter -> unit -> bool
  val pp_set_ellipsis_text : Lm_printf.formatter -> string -> unit
  val pp_get_ellipsis_text : Lm_printf.formatter -> unit -> string
  val pp_set_formatter_out_channel :
    Lm_printf.formatter -> Pervasives.out_channel -> unit
  val pp_set_formatter_output_functions :
    Lm_printf.formatter ->
    (string -> int -> int -> unit) -> (unit -> unit) -> unit
  val pp_get_formatter_output_functions :
    Lm_printf.formatter ->
    unit -> (string -> int -> int -> unit) * (unit -> unit)
  val pp_set_all_formatter_output_functions :
    Lm_printf.formatter ->
    (string -> int -> int -> unit) ->
    (unit -> unit) -> (unit -> unit) -> (int -> unit) -> unit
  val pp_get_all_formatter_output_functions :
    Lm_printf.formatter ->
    unit ->
    (string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
    (int -> unit)
  val out_channel_of_formatter : Format.formatter -> Lm_printf.out_channel
  val pp_print_any_list :
    (Lm_printf.formatter -> '-> unit) ->
    Lm_printf.formatter -> 'a list -> unit
end