# The parse tree borrows the source (zero-copy); positions are byte span + line

lispexp's `Parsed<'a>` and every `Datum<'a>` borrow `&'a str` slices directly from the input source rather than owning `String`s, following the zero-copy precedent of `s-expr` and eckertliam's `s-expression` and satisfying `cccc`'s need to walk many files in parallel with frugal allocation. The tradeoff is that a `Parsed` cannot outlive its source string — accepted, because callers (including `cccc`) hold the source for the duration of analysis anyway, and this is precisely what makes verbatim round-trip free (see ADR-0010). Positions are stored as a byte `Span { start, end }` plus a 1-based start `line` on every Datum (the two things `cccc` needs cheaply); column is not stored per-node but derived from the source and span on demand, to keep Datums small.
