Represents either a span of tokens during parsing or a span of text after parsing.
During parsing the span is said to be internal . Then it contains the starting line number, index of the file being parsed and a range of token indeces. The string corresponding to the tokens can then be obtained from the Lexer for a span. When a span is serialized to a module file, it is turned to an external span that contains start and end indeces of the characters that a range of tokens contained. The start and end character indeces are counted from the start of the file.