Module Sexp_pretty

module Config : module type of Config
module type S = sig ... end
include S with type S.sexp := Sexplib.Sexp.t
type sexp
type 'a writer = Config.t -> 'a -> sexp -> Base.unit
val pp_formatter : Caml.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 -> sexp Base.option) -> Config.t -> Caml.Format.formatter -> Base.unit
val pp_buffer : Base.Buffer.t writer
val pp_out_channel : Caml.out_channel writer
val pp_blit : (Base.stringBase.unit) Base.Blit.sub writer
val pretty_string : Config.t -> sexp -> 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 : sexp -> Base.string
module Sexp_with_layout : S with type sexp := Sexplib.Sexp.With_layout.t_or_comment
module Normalize : sig ... end
val sexp_to_sexp_or_comment : Sexplib.Sexp.t -> Sexplib.Sexp.With_layout.t_or_comment