plucky (3) Format_doc.3o.gz

Provided by: ocaml-man_5.3.0-2_all bug

NAME

       Format_doc - Composable document for the Format formatting engine.

Module

       Module   Format_doc

Documentation

       Module Format_doc
        : sig end

       Composable document for the Format formatting engine.

       This  module  introduces  a  pure  and  immutable document type which represents a sequence of formatting
       instructions to be printed by a formatting engine at later point. At the  same  time,  it  also  provides
       format  string  interpreter  which  produces  this  document type from format string and their associated
       printers.

       The module is designed to be source compatible with code defining format printers: replacing `Format`  by
       `Format_doc` in your code will convert `Format` printers to `Format_doc` printers.

       module Doc : sig end

       Definitions and immutable API for composing documents

   Compatibility API
       The  functions and types below provides source compatibility with format printers and conversion function
       from Format_doc printers to Format printers. The reverse direction is implemented using an  escape  hatch
       in the formatting instruction and should only be used to preserve backward compatibility.

       type doc = Doc.t

       type t = doc

       type formatter

       type 'a printer = formatter -> 'a -> unit

       val formatter : doc ref -> formatter

       formatter rdoc creates a Format_doc.formatter that updates the rdoc reference

       type 'a format_printer = Format.formatter -> 'a -> unit

       Translate a Format_doc printer to a Format one.

       val compat : 'a printer -> 'a format_printer

       val compat1 : ('p1 -> 'a printer) -> 'p1 -> 'a format_printer

       val compat2 : ('p1 -> 'p2 -> 'a printer) -> 'p1 -> 'p2 -> 'a format_printer

       val deprecated_printer : (Format.formatter -> unit) -> formatter -> unit

       If  necessary,  embbed  a  Format  printer  inside  a  formatting  instruction  stream. This breaks every
       guarantees provided by Format_doc .

       val deprecated : 'a format_printer -> 'a printer

       val deprecated1 : ('p1 -> 'a format_printer) -> 'p1 -> 'a printer

   Format string interpreters
       val fprintf : formatter -> ('a, formatter, unit) format -> 'a

       val kfprintf : (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b

       val asprintf : ('a, formatter, unit, string) format4 -> 'a

       val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b

       val dprintf : ('a, formatter, unit, formatter -> unit) format4 -> 'a

       val kdprintf : ((formatter -> unit) -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b

       val doc_printf : ('a, formatter, unit, doc) format4 -> 'a

       Format_doc.doc_printf and Format_doc.kdoc_printf creates a document directly

       val kdoc_printf : (doc -> 'r) -> ('a, formatter, unit, 'r) format4 -> 'a

   Compatibility with Format_doc.Doc
       val doc_printer : 'a printer -> 'a Doc.printer

       val pp_doc : doc printer

   Source compatibility with Format
   String printers
       val pp_print_string : string printer

       val pp_print_substring : pos:int -> len:int -> string printer

       val pp_print_text : string printer

       val pp_print_bytes : bytes printer

       val pp_print_as : formatter -> int -> string -> unit

       val pp_print_substring_as : pos:int -> len:int -> formatter -> int -> string -> unit

   Primitive type printers
       val pp_print_char : char printer

       val pp_print_int : int printer

       val pp_print_float : float printer

       val pp_print_bool : bool printer

       val pp_print_nothing : unit printer

   Printer combinators
       val pp_print_iter : ?pp_sep:unit printer -> (('a -> unit) -> 'b -> unit) -> 'a printer -> 'b printer

       val pp_print_list : ?pp_sep:unit printer -> 'a printer -> 'a list printer

       val pp_print_array : ?pp_sep:unit printer -> 'a printer -> 'a array printer

       val pp_print_seq : ?pp_sep:unit printer -> 'a printer -> 'a Seq.t printer

       val pp_print_option : ?none:unit printer -> 'a printer -> 'a option printer

       val pp_print_result : ok:'a printer -> error:'e printer -> ('a, 'e) result printer

       val pp_print_either : left:'a printer -> right:'b printer -> ('a, 'b) Either.t printer

   Boxes and tags
       val pp_open_stag : Format.stag printer

       val pp_close_stag : unit printer

       val pp_open_box : int printer

       val pp_close_box : unit printer

   Break hints
       val pp_print_space : unit printer

       val pp_print_cut : unit printer

       val pp_print_break : formatter -> int -> int -> unit

       val pp_print_custom_break : formatter -> fits:string * int * string -> breaks:string * int  *  string  ->
       unit

   Tabulations
       val pp_open_tbox : unit printer

       val pp_close_tbox : unit printer

       val pp_set_tab : unit printer

       val pp_print_tab : unit printer

       val pp_print_tbreak : formatter -> int -> int -> unit

   Newlines and flushing
       val pp_print_if_newline : unit printer

       val pp_force_newline : unit printer

       val pp_print_flush : unit printer

       val pp_print_newline : unit printer

   Compiler specific functions
   Separators
       val comma : unit printer

   Compiler output
       val pp_two_columns : ?sep:string -> ?max_lines:int -> formatter -> (string * string) list -> unit

       pp_two_columns  ?sep  ?max_lines  ppf  l  prints  the  lines in l as two columns separated by sep ("|" by
       default).  max_lines can be used to indicate a maximum number of lines  to  print  --  an  ellipsis  gets
       inserted at the middle if the input has too many lines.

       Example:

       pp_two_columns  ~max_lines:3  Format.std_formatter [ "abc", "hello"; "def", "zzz"; "a"  , "bllbl"; "bb" ,
       "dddddd"; ]

       prints

       abc | hello ...  bb  | dddddd