A With_text.t
is a value paired with the full textual representation of its sexp.
This is useful for dealing with the case where you want to keep track of a value along
with the format of the s-expression it was generated from, which allows you to
maintain formatting details, comments, etc.
The s-expression representation of a With_text.t
is the raw text, stored as an atom.
The bin_io representation contains both the bin_io of the underlying value and the
bin_io'd version of the raw text.
This is similar to but simpler than the With_layout
module included above (via
Sexp_intf.S
), which gives you access to a fully parsed version of the s-expression,
with attached comments and layout information, to allow you to build layout-preserving
s-expression transformations.
The invariants of a x With_text.t
are broken if the x
value is mutated.