public interface Span extends Faceted
WARNING: This interface should not be implemented or extended by code outside of this library.
A span is conceptually comprised of two abstract positions or offsets within the base source. The start position denotes the leftmost edge of the span, and the finish position denotes the rightmost edge. Positions lie between values, and when the start and finish positions are equal, the span is said to be empty.
A span is said to cover the values that lie within its edges.
A span is balanced if it starts and finishes within the same container, otherwise it is unbalanced. This library currently does not support unbalanced spans.
Since different source types require different positioning techniques,
spans is Faceted
to expose the position implementation.