struct SourceRange { field sourceText: Shared[SourceText]; field start: SourcePosition; field end: SourcePosition; } native SourceText { } struct SourcePosition { field sourceText: Shared[SourceText]; field characterIndex: Int32; }