sig
  type channel = Buffer.t
  type document = document
  val pretty : float -> int -> channel -> document -> unit
  val compact : channel -> document -> unit
end