Expand description
Line/column mapping for a source file.
LineMap precomputes the byte offset at the start of each line so that
BytePos → LineCol conversion is a binary search, not a rescan. All
offsets are byte offsets (§4.1: source is UTF-8); a column is the byte
offset from the start of the line, so multi-byte characters occupy more than
one column. This keeps the mapping lossless and O(1) to invert.