Module Sexp_pretty

module Config : sig ... end
module type S = sig ... end
include S with type sexp := Base.Sexp.t
type 'a writer = Config.t -> 'a -> Base.Sexp.t -> Base.unit
val pp_formatter : Format.formatter writer

pp_formatter conf fmt sexp will mutate the fmt with functions such as set_formatter_tag_functions

val pp_formatter' : next:(Base.unit -> Base.Sexp.t Base.option) -> Config.t -> Format.formatter -> Base.unit
val pp_buffer : Base.Buffer.t writer
val pp_out_channel : out_channel writer
val pretty_string : Config.t -> Base.Sexp.t -> Base.string

pretty_string needs to allocate. If you care about performance, using one of the pp_* functions above is advised.

val sexp_to_string : Base.Sexp.t -> Base.string
module Normalize : sig ... end
val sexp_to_sexp_or_comment : Base.Sexp.t -> Sexplib.Sexp.With_layout.t_or_comment