Sexp_prettymodule Config : sig ... endmodule type S = sig ... endinclude S with type sexp := Base.Sexp.ttype 'a writer = Config.t -> 'a -> Base.Sexp.t -> Base.unitval pp_formatter : Format.formatter writerpp_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.unitval pp_buffer : Base.Buffer.t writerval pp_out_channel : out_channel writerval pp_blit : (Base.string, Base.unit) Base.Blit.sub writerval pretty_string : Config.t -> Base.Sexp.t -> Base.stringpretty_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.stringmodule Sexp_with_layout : 
  S with type sexp := Sexplib.Sexp.With_layout.t_or_commentmodule Normalize : sig ... endval sexp_to_sexp_or_comment : 
  Base.Sexp.t ->
  Sexplib.Sexp.With_layout.t_or_comment