OCaml compiler library : Format_doc.Doc

`sig
type box_type = H | V | HV | HoV | B
type stag = Stdlib.Format.stag
type element =
Text of string
| With_size of int
| Open_box of { kind : Format_doc.Doc.box_type; indent : int; }
| Close_box
| Open_tag of Stdlib.Format.stag
| Close_tag
| Open_tbox
| Tab_break of { width : int; offset : int; }
| Set_tab
| Close_tbox
| Simple_break of { spaces : int; indent : int; }
| Break of { fits : string * int * string;
breaks : string * int * string;
}
| Flush of { newline : bool; }
| Newline
| If_newline
| Deprecated of (Stdlib.Format.formatter -> unit)
type t
type ('a, 'b) fmt =
('a, Format_doc.Doc.t, Format_doc.Doc.t, 'b) Stdlib.format4
type printer0 = Format_doc.Doc.t -> Format_doc.Doc.t
type 'a printer = 'a -> Format_doc.Doc.printer0
val empty : Format_doc.Doc.t
val format : Stdlib.Format.formatter -> Format_doc.Doc.t -> unit
val fold :
('acc -> Format_doc.Doc.element -> 'acc) ->
'acc -> Format_doc.Doc.t -> 'acc
val msg : ('a, Format_doc.Doc.t) Format_doc.Doc.fmt -> 'a
val kmsg : (Format_doc.Doc.t -> 'b) -> ('a, 'b) Format_doc.Doc.fmt -> 'a
val printf : ('a, Format_doc.Doc.printer0) Format_doc.Doc.fmt -> 'a
val kprintf :
(Format_doc.Doc.t -> 'b) ->
('a, Format_doc.Doc.t -> 'b) Format_doc.Doc.fmt -> 'a
val open_box : Format_doc.Doc.box_type -> int -> Format_doc.Doc.printer0
val close_box : Format_doc.Doc.printer0
val text : string Format_doc.Doc.printer
val string : string Format_doc.Doc.printer
val bytes : bytes Format_doc.Doc.printer
val with_size : int Format_doc.Doc.printer
val int : int Format_doc.Doc.printer
val float : float Format_doc.Doc.printer
val char : char Format_doc.Doc.printer
val bool : bool Format_doc.Doc.printer
val space : Format_doc.Doc.printer0
val cut : Format_doc.Doc.printer0
val break : spaces:int -> indent:int -> Format_doc.Doc.printer0
val custom_break :
fits:string * int * string ->
breaks:string * int * string -> Format_doc.Doc.printer0
val force_newline : Format_doc.Doc.printer0
val if_newline : Format_doc.Doc.printer0
val flush : Format_doc.Doc.printer0
val force_stop : Format_doc.Doc.printer0
val open_tbox : Format_doc.Doc.printer0
val set_tab : Format_doc.Doc.printer0
val tab : Format_doc.Doc.printer0
val tab_break : width:int -> offset:int -> Format_doc.Doc.printer0
val close_tbox : Format_doc.Doc.printer0
val open_tag : Format_doc.Doc.stag Format_doc.Doc.printer
val close_tag : Format_doc.Doc.printer0
val list :
?sep:Format_doc.Doc.printer0 ->
'a Format_doc.Doc.printer -> 'a list Format_doc.Doc.printer
val iter :
?sep:Format_doc.Doc.printer0 ->
iter:(('a -> unit) -> 'b -> unit) ->
'a Format_doc.Doc.printer -> 'b Format_doc.Doc.printer
val array :
?sep:Format_doc.Doc.printer0 ->
'a Format_doc.Doc.printer -> 'a array Format_doc.Doc.printer
val seq :
?sep:Format_doc.Doc.printer0 ->
'a Format_doc.Doc.printer -> 'a Stdlib.Seq.t Format_doc.Doc.printer
val option :
?none:Format_doc.Doc.printer0 ->
'a Format_doc.Doc.printer -> 'a option Format_doc.Doc.printer
val result :
ok:'a Format_doc.Doc.printer ->
error:'e Format_doc.Doc.printer ->
('a, 'e) Stdlib.result Format_doc.Doc.printer
val either :
left:'a Format_doc.Doc.printer ->
right:'b Format_doc.Doc.printer ->
('a, 'b) Stdlib.Either.t Format_doc.Doc.printer
val align_prefix : (Format_doc.Doc.t * int) list -> Format_doc.Doc.t list
val align_prefix2 :
Format_doc.Doc.t * int ->
Format_doc.Doc.t * int -> Format_doc.Doc.t * Format_doc.Doc.t
end`