Structs
A string backed by a source. Treated as a string, so contents rather than position is considered
the value. For example, two SourceRange values are equal if their contents equal, even if they
are from different files or positions in the same file.