sig
  type t = SmartPrint.t
  val empty : t
  val string : string -> t
  val sub_string : string -> int -> int -> t
  val ( !^ ) : string -> t
  val space : t
  val newline : t
  val append : t -> t -> t
  val ( ^-^ ) : t -> t -> t
  val concat_with_space : t -> t -> t
  val ( ^^ ) : t -> t -> t
  val words : string -> t
  val lines : string -> t
  val indent : t -> t
  val nest : t -> t
  val nest_all : t -> t
  val group : t -> t
  val group_all : t -> t
  val parens : t -> t
  val braces : t -> t
  val brakets : t -> t
  val angle_brakets : t -> t
  val single_quotes : t -> t
  val double_quotes : t -> t
  val concat : t list -> t
  val separate : t -> t list -> t
  module OCaml = Metadoc.OCaml
  module Debug = Metadoc.Debug
  val to_something :
    int ->
    int ->
    (char -> unit) ->
    (string -> unit) -> (string -> int -> int -> unit) -> t -> unit
  val to_buffer : int -> int -> Buffer.t -> t -> unit
  val to_out_channel : int -> int -> out_channel -> t -> unit
  val to_stdout : int -> int -> t -> unit
  val ( % ) : t -> t -> t
  val s : string -> t
  val sp : t
  val sf : ('a, unit, string, t) format4 -> 'a
  val i : int -> SmartPrint.t
  val f : float -> SmartPrint.t
  val n : t
  val verbatim : string -> t
  val exn : exn -> t
  val option : f:('-> t) -> 'a option -> t
  val escape : string -> t
  val color : string -> t -> t
  val bold_red : t -> t
  val bold_yellow : t -> t
  val bold_green : t -> t
  val greyish : t -> t
  val to_string : line_width:int -> indent:int -> SmartPrint.t -> string
  val to_list :
    line_width:int ->
    indent:int ->
    SmartPrint.t ->
    [> `Char of char | `String of string | `Sub_string of string * int * int ]
    list
  val to_markdown_string : ?line_width:int -> SmartPrint.t -> string
  val new_par : t
  val h : char -> SmartPrint.t -> t
  val h1 : SmartPrint.t -> t
  val h2 : SmartPrint.t -> t
  val par : t -> t
  val emph : t -> t
  val ul_filter : t list -> t
  val ul_inner : t list -> t
  val url : string -> t
  val link : t -> url:string -> t
end