sig
  type t = SmartPrint.t
  type ('a, 'b) result = 'a
  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 :
    sig
      val unit : unit -> t
      val bool : bool -> t
      val int : int -> t
      val float : float -> t
      val string : string -> t
      val option : ('-> t) -> 'a option -> t
      val list : ('-> t) -> 'a list -> t
      val tuple : t list -> t
    end
  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 -> t
  val f : float -> 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 print :
    [< `Debug of int | `Error | `Normal | `Warning ] ->
    t -> (unit, 'a) result
  val ( @ ) :
    t ->
    [< `Debug of int | `Error | `Normal | `Warning ] -> (unit, 'a) result
  val normal : [> `Normal ]
  val error : [> `Error ]
  val warning : [> `Warning ]
  val verbose : [> `Debug of int ]
  val very_verbose : [> `Debug of int ]
  val a : ('-> string) -> '-> t
  val to_long_string : SmartPrint.t -> string
  val if_color : ('-> 'a) -> '-> 'a
  val nbsp : t
  val quote : string -> t
  val sexp : ('-> Sexplib.Sexp.t) -> '-> t
  val uri : Uri.t -> t
end