sig
  type t
  val empty : Pp.t
  val ( $ ) : Pp.t -> Pp.t -> Pp.t
  val text : string -> Pp.t
  val break : Pp.t
  val break_null : Pp.t
  val break_with : string -> Pp.t
  val nest : int -> Pp.t -> Pp.t
  val hgrp : Pp.t -> Pp.t
  val vgrp : Pp.t -> Pp.t
  val agrp : Pp.t -> Pp.t
  val fgrp : Pp.t -> Pp.t
  val to_string : ?width:int -> Pp.t -> string
  val to_file : ?width:int -> Pervasives.out_channel -> Pp.t -> unit
  val list : sep:Pp.t -> f:('-> Pp.t) -> 'a list -> Pp.t
  val commalist : f:('-> Pp.t) -> 'a list -> Pp.t
  val ( $/ ) : Pp.t -> Pp.t -> Pp.t
  val ( $// ) : Pp.t -> Pp.t -> Pp.t
  val block : ?indent:int -> f:('-> Pp.t) -> 'a list -> Pp.t
  module Infix :
    sig
      val ( $ ) : Pp.t -> Pp.t -> Pp.t
      val ( $/ ) : Pp.t -> Pp.t -> Pp.t
      val ( $// ) : Pp.t -> Pp.t -> Pp.t
    end
  val hlist : Pp.t list -> Pp.t
  val vlist : Pp.t list -> Pp.t
  val alist : Pp.t list -> Pp.t
  val ounit_tests : unit -> OUnit.test
end