diff --git a/src/parser/internal/data_type.rs b/src/parser/internal/data_type.rs index a70d15c..afa139b 100644 --- a/src/parser/internal/data_type.rs +++ b/src/parser/internal/data_type.rs @@ -25,7 +25,10 @@ pub fn data_type(state: &mut State) -> ParseResult { } if state.current.kind == TokenKind::Ampersand - && !matches!(state.peek.kind, TokenKind::Variable(_)) + && !matches!( + state.peek.kind, + TokenKind::Variable(_) | TokenKind::Ellipsis | TokenKind::Ampersand + ) { return instersection(state, ty, false); } @@ -52,7 +55,10 @@ pub fn optional_data_type(state: &mut State) -> ParseResult> { } if state.current.kind == TokenKind::Ampersand - && !matches!(state.peek.kind, TokenKind::Variable(_)) + && !matches!( + state.peek.kind, + TokenKind::Variable(_) | TokenKind::Ellipsis | TokenKind::Ampersand + ) { return instersection(state, ty, false).map(Some); } @@ -328,7 +334,10 @@ fn instersection(state: &mut State, other: Type, within_dnf: bool) -> ParseResul types.push(ty); if state.current.kind == TokenKind::Ampersand - && !matches!(state.peek.kind, TokenKind::Variable(_)) + && !matches!( + state.peek.kind, + TokenKind::Variable(_) | TokenKind::Ellipsis | TokenKind::Ampersand + ) { state.next(); } else { diff --git a/src/parser/internal/parameters.rs b/src/parser/internal/parameters.rs index 9da637c..7876773 100644 --- a/src/parser/internal/parameters.rs +++ b/src/parser/internal/parameters.rs @@ -41,7 +41,6 @@ pub fn function_parameter_list(state: &mut State) -> Result Bar::from($s); +static fn (Foo ...$s): Bar => Bar::from($s); +static fn (Foo &$s): Bar => Bar::from($s); +static fn (Foo $s): Bar => Bar::from($s); +static function (Foo &...$s): Bar { return Bar::from($s); }; +static function (Foo ...$s): Bar { return Bar::from($s); }; +static function (Foo &$s): Bar { return Bar::from($s); }; +static function (Foo $s): Bar { return Bar::from($s); }; +static fn (Foo&Bar&Baz &...$s): Bar => Bar::from($s); +static fn (Foo&Bar&Baz ...$s): Bar => Bar::from($s); +static fn (Foo&Bar&Baz &$s): Bar => Bar::from($s); +static fn (Foo&Bar&Baz $s): Bar => Bar::from($s); +static function (Foo&Bar&Baz &...$s): Bar { return Bar::from($s); }; +static function (Foo&Bar&Baz ...$s): Bar { return Bar::from($s); }; +static function (Foo&Bar&Baz &$s): Bar { return Bar::from($s); }; +static function (Foo&Bar&Baz $s): Bar { return Bar::from($s); }; +static fn (Foo|Bar|Baz &...$s): Bar => Bar::from($s); +static fn (Foo|Bar|Baz ...$s): Bar => Bar::from($s); +static fn (Foo|Bar|Baz &$s): Bar => Bar::from($s); +static fn (Foo|Bar|Baz $s): Bar => Bar::from($s); +static function (Foo|Bar|Baz &...$s): Bar { return Bar::from($s); }; +static function (Foo|Bar|Baz ...$s): Bar { return Bar::from($s); }; +static function (Foo|Bar|Baz &$s): Bar { return Bar::from($s); }; +static function (Foo|Bar|Baz $s): Bar { return Bar::from($s); }; +static fn (Foo|(Bar&Baz) &...$s): Bar => Bar::from($s); +static fn (Foo|(Bar&Baz) ...$s): Bar => Bar::from($s); +static fn (Foo|(Bar&Baz) &$s): Bar => Bar::from($s); +static fn (Foo|(Bar&Baz) $s): Bar => Bar::from($s); +static function (Foo|(Bar&Baz) &...$s): Bar { return Bar::from($s); }; +static function (Foo|(Bar&Baz) ...$s): Bar { return Bar::from($s); }; +static function (Foo|(Bar&Baz) &$s): Bar { return Bar::from($s); }; +static function (Foo|(Bar&Baz) $s): Bar { return Bar::from($s); }; +static fn (Foo&(Bar|Baz) &...$s): Bar => Bar::from($s); +static fn (Foo&(Bar|Baz) ...$s): Bar => Bar::from($s); +static fn (Foo&(Bar|Baz) &$s): Bar => Bar::from($s); +static fn (Foo&(Bar|Baz) $s): Bar => Bar::from($s); +static function (Foo&(Bar|Baz) &...$s): Bar { return Bar::from($s); }; +static function (Foo&(Bar|Baz) ...$s): Bar { return Bar::from($s); }; +static function (Foo&(Bar|Baz) &$s): Bar { return Bar::from($s); }; +static function (Foo&(Bar|Baz) $s): Bar { return Bar::from($s); }; + +fn (Foo &...$s): Bar => Bar::from($s); +fn (Foo ...$s): Bar => Bar::from($s); +fn (Foo &$s): Bar => Bar::from($s); +fn (Foo $s): Bar => Bar::from($s); +function (Foo &...$s): Bar { return Bar::from($s); }; +function (Foo ...$s): Bar { return Bar::from($s); }; +function (Foo &$s): Bar { return Bar::from($s); }; +function (Foo $s): Bar { return Bar::from($s); }; +fn (Foo&Bar&Baz &...$s): Bar => Bar::from($s); +fn (Foo&Bar&Baz ...$s): Bar => Bar::from($s); +fn (Foo&Bar&Baz &$s): Bar => Bar::from($s); +fn (Foo&Bar&Baz $s): Bar => Bar::from($s); +function (Foo&Bar&Baz &...$s): Bar { return Bar::from($s); }; +function (Foo&Bar&Baz ...$s): Bar { return Bar::from($s); }; +function (Foo&Bar&Baz &$s): Bar { return Bar::from($s); }; +function (Foo&Bar&Baz $s): Bar { return Bar::from($s); }; +fn (Foo|Bar|Baz &...$s): Bar => Bar::from($s); +fn (Foo|Bar|Baz ...$s): Bar => Bar::from($s); +fn (Foo|Bar|Baz &$s): Bar => Bar::from($s); +fn (Foo|Bar|Baz $s): Bar => Bar::from($s); +function (Foo|Bar|Baz &...$s): Bar { return Bar::from($s); }; +function (Foo|Bar|Baz ...$s): Bar { return Bar::from($s); }; +function (Foo|Bar|Baz &$s): Bar { return Bar::from($s); }; +function (Foo|Bar|Baz $s): Bar { return Bar::from($s); }; +fn (Foo|(Bar&Baz) &...$s): Bar => Bar::from($s); +fn (Foo|(Bar&Baz) ...$s): Bar => Bar::from($s); +fn (Foo|(Bar&Baz) &$s): Bar => Bar::from($s); +fn (Foo|(Bar&Baz) $s): Bar => Bar::from($s); +function (Foo|(Bar&Baz) &...$s): Bar { return Bar::from($s); }; +function (Foo|(Bar&Baz) ...$s): Bar { return Bar::from($s); }; +function (Foo|(Bar&Baz) &$s): Bar { return Bar::from($s); }; +function (Foo|(Bar&Baz) $s): Bar { return Bar::from($s); }; +fn (Foo&(Bar|Baz) &...$s): Bar => Bar::from($s); +fn (Foo&(Bar|Baz) ...$s): Bar => Bar::from($s); +fn (Foo&(Bar|Baz) &$s): Bar => Bar::from($s); +fn (Foo&(Bar|Baz) $s): Bar => Bar::from($s); +function (Foo&(Bar|Baz) &...$s): Bar { return Bar::from($s); }; +function (Foo&(Bar|Baz) ...$s): Bar { return Bar::from($s); }; +function (Foo&(Bar|Baz) &$s): Bar { return Bar::from($s); }; +function (Foo&(Bar|Baz) $s): Bar { return Bar::from($s); }; + +function foo(Foo &...$s): Bar { return Bar::from($s); } +function foo(Foo ...$s): Bar { return Bar::from($s); } +function foo(Foo &$s): Bar { return Bar::from($s); } +function foo(Foo $s): Bar { return Bar::from($s); } +function foo(Foo&Bar&Baz &...$s): Bar { return Bar::from($s); } +function foo(Foo&Bar&Baz ...$s): Bar { return Bar::from($s); } +function foo(Foo&Bar&Baz &$s): Bar { return Bar::from($s); } +function foo(Foo&Bar&Baz $s): Bar { return Bar::from($s); } +function foo(Foo|Bar|Baz &...$s): Bar { return Bar::from($s); } +function foo(Foo|Bar|Baz ...$s): Bar { return Bar::from($s); } +function foo(Foo|Bar|Baz &$s): Bar { return Bar::from($s); } +function foo(Foo|Bar|Baz $s): Bar { return Bar::from($s); } +function foo(Foo|(Bar&Baz) &...$s): Bar { return Bar::from($s); } +function foo(Foo|(Bar&Baz) ...$s): Bar { return Bar::from($s); } +function foo(Foo|(Bar&Baz) &$s): Bar { return Bar::from($s); } +function foo(Foo|(Bar&Baz) $s): Bar { return Bar::from($s); } +function foo(Foo&(Bar|Baz) &...$s): Bar { return Bar::from($s); } +function foo(Foo&(Bar|Baz) ...$s): Bar { return Bar::from($s); } +function foo(Foo&(Bar|Baz) &$s): Bar { return Bar::from($s); } +function foo(Foo&(Bar|Baz) $s): Bar { return Bar::from($s); } diff --git a/tests/fixtures/0275/tokens.txt b/tests/fixtures/0275/tokens.txt new file mode 100644 index 0000000..cd9d8b6 --- /dev/null +++ b/tests/fixtures/0275/tokens.txt @@ -0,0 +1,16911 @@ +[ + Token { + kind: OpenTag( + Full, + ), + span: ( + 1, + 1, + ), + }, + Token { + kind: Static, + span: ( + 3, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 3, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 3, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 3, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 3, + 16, + ), + }, + Token { + kind: Ellipsis, + span: ( + 3, + 17, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 3, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 3, + 22, + ), + }, + Token { + kind: Colon, + span: ( + 3, + 23, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 3, + 25, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 3, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 3, + 32, + ), + }, + Token { + kind: DoubleColon, + span: ( + 3, + 35, + ), + }, + Token { + kind: From, + span: ( + 3, + 37, + ), + }, + Token { + kind: LeftParen, + span: ( + 3, + 41, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 3, + 42, + ), + }, + Token { + kind: RightParen, + span: ( + 3, + 44, + ), + }, + Token { + kind: SemiColon, + span: ( + 3, + 45, + ), + }, + Token { + kind: Static, + span: ( + 4, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 4, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 4, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 4, + 12, + ), + }, + Token { + kind: Ellipsis, + span: ( + 4, + 16, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 4, + 19, + ), + }, + Token { + kind: RightParen, + span: ( + 4, + 21, + ), + }, + Token { + kind: Colon, + span: ( + 4, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 4, + 24, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 4, + 28, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 4, + 31, + ), + }, + Token { + kind: DoubleColon, + span: ( + 4, + 34, + ), + }, + Token { + kind: From, + span: ( + 4, + 36, + ), + }, + Token { + kind: LeftParen, + span: ( + 4, + 40, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 4, + 41, + ), + }, + Token { + kind: RightParen, + span: ( + 4, + 43, + ), + }, + Token { + kind: SemiColon, + span: ( + 4, + 44, + ), + }, + Token { + kind: Static, + span: ( + 5, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 5, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 5, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 5, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 5, + 16, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 5, + 17, + ), + }, + Token { + kind: RightParen, + span: ( + 5, + 19, + ), + }, + Token { + kind: Colon, + span: ( + 5, + 20, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 5, + 22, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 5, + 26, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 5, + 29, + ), + }, + Token { + kind: DoubleColon, + span: ( + 5, + 32, + ), + }, + Token { + kind: From, + span: ( + 5, + 34, + ), + }, + Token { + kind: LeftParen, + span: ( + 5, + 38, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 5, + 39, + ), + }, + Token { + kind: RightParen, + span: ( + 5, + 41, + ), + }, + Token { + kind: SemiColon, + span: ( + 5, + 42, + ), + }, + Token { + kind: Static, + span: ( + 6, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 6, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 6, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 6, + 12, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 6, + 16, + ), + }, + Token { + kind: RightParen, + span: ( + 6, + 18, + ), + }, + Token { + kind: Colon, + span: ( + 6, + 19, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 6, + 21, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 6, + 25, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 6, + 28, + ), + }, + Token { + kind: DoubleColon, + span: ( + 6, + 31, + ), + }, + Token { + kind: From, + span: ( + 6, + 33, + ), + }, + Token { + kind: LeftParen, + span: ( + 6, + 37, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 6, + 38, + ), + }, + Token { + kind: RightParen, + span: ( + 6, + 40, + ), + }, + Token { + kind: SemiColon, + span: ( + 6, + 41, + ), + }, + Token { + kind: Static, + span: ( + 7, + 1, + ), + }, + Token { + kind: Function, + span: ( + 7, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 7, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 7, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 7, + 22, + ), + }, + Token { + kind: Ellipsis, + span: ( + 7, + 23, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 7, + 26, + ), + }, + Token { + kind: RightParen, + span: ( + 7, + 28, + ), + }, + Token { + kind: Colon, + span: ( + 7, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 7, + 31, + ), + }, + Token { + kind: LeftBrace, + span: ( + 7, + 35, + ), + }, + Token { + kind: Return, + span: ( + 7, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 7, + 44, + ), + }, + Token { + kind: DoubleColon, + span: ( + 7, + 47, + ), + }, + Token { + kind: From, + span: ( + 7, + 49, + ), + }, + Token { + kind: LeftParen, + span: ( + 7, + 53, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 7, + 54, + ), + }, + Token { + kind: RightParen, + span: ( + 7, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 7, + 57, + ), + }, + Token { + kind: RightBrace, + span: ( + 7, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 7, + 60, + ), + }, + Token { + kind: Static, + span: ( + 8, + 1, + ), + }, + Token { + kind: Function, + span: ( + 8, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 8, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 8, + 18, + ), + }, + Token { + kind: Ellipsis, + span: ( + 8, + 22, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 8, + 25, + ), + }, + Token { + kind: RightParen, + span: ( + 8, + 27, + ), + }, + Token { + kind: Colon, + span: ( + 8, + 28, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 8, + 30, + ), + }, + Token { + kind: LeftBrace, + span: ( + 8, + 34, + ), + }, + Token { + kind: Return, + span: ( + 8, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 8, + 43, + ), + }, + Token { + kind: DoubleColon, + span: ( + 8, + 46, + ), + }, + Token { + kind: From, + span: ( + 8, + 48, + ), + }, + Token { + kind: LeftParen, + span: ( + 8, + 52, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 8, + 53, + ), + }, + Token { + kind: RightParen, + span: ( + 8, + 55, + ), + }, + Token { + kind: SemiColon, + span: ( + 8, + 56, + ), + }, + Token { + kind: RightBrace, + span: ( + 8, + 58, + ), + }, + Token { + kind: SemiColon, + span: ( + 8, + 59, + ), + }, + Token { + kind: Static, + span: ( + 9, + 1, + ), + }, + Token { + kind: Function, + span: ( + 9, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 9, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 9, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 9, + 22, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 9, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 9, + 25, + ), + }, + Token { + kind: Colon, + span: ( + 9, + 26, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 9, + 28, + ), + }, + Token { + kind: LeftBrace, + span: ( + 9, + 32, + ), + }, + Token { + kind: Return, + span: ( + 9, + 34, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 9, + 41, + ), + }, + Token { + kind: DoubleColon, + span: ( + 9, + 44, + ), + }, + Token { + kind: From, + span: ( + 9, + 46, + ), + }, + Token { + kind: LeftParen, + span: ( + 9, + 50, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 9, + 51, + ), + }, + Token { + kind: RightParen, + span: ( + 9, + 53, + ), + }, + Token { + kind: SemiColon, + span: ( + 9, + 54, + ), + }, + Token { + kind: RightBrace, + span: ( + 9, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 9, + 57, + ), + }, + Token { + kind: Static, + span: ( + 10, + 1, + ), + }, + Token { + kind: Function, + span: ( + 10, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 10, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 10, + 18, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 10, + 22, + ), + }, + Token { + kind: RightParen, + span: ( + 10, + 24, + ), + }, + Token { + kind: Colon, + span: ( + 10, + 25, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 10, + 27, + ), + }, + Token { + kind: LeftBrace, + span: ( + 10, + 31, + ), + }, + Token { + kind: Return, + span: ( + 10, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 10, + 40, + ), + }, + Token { + kind: DoubleColon, + span: ( + 10, + 43, + ), + }, + Token { + kind: From, + span: ( + 10, + 45, + ), + }, + Token { + kind: LeftParen, + span: ( + 10, + 49, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 10, + 50, + ), + }, + Token { + kind: RightParen, + span: ( + 10, + 52, + ), + }, + Token { + kind: SemiColon, + span: ( + 10, + 53, + ), + }, + Token { + kind: RightBrace, + span: ( + 10, + 55, + ), + }, + Token { + kind: SemiColon, + span: ( + 10, + 56, + ), + }, + Token { + kind: Static, + span: ( + 11, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 11, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 11, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 11, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 11, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 11, + 16, + ), + }, + Token { + kind: Ampersand, + span: ( + 11, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 11, + 20, + ), + }, + Token { + kind: Ampersand, + span: ( + 11, + 24, + ), + }, + Token { + kind: Ellipsis, + span: ( + 11, + 25, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 11, + 28, + ), + }, + Token { + kind: RightParen, + span: ( + 11, + 30, + ), + }, + Token { + kind: Colon, + span: ( + 11, + 31, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 11, + 33, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 11, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 11, + 40, + ), + }, + Token { + kind: DoubleColon, + span: ( + 11, + 43, + ), + }, + Token { + kind: From, + span: ( + 11, + 45, + ), + }, + Token { + kind: LeftParen, + span: ( + 11, + 49, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 11, + 50, + ), + }, + Token { + kind: RightParen, + span: ( + 11, + 52, + ), + }, + Token { + kind: SemiColon, + span: ( + 11, + 53, + ), + }, + Token { + kind: Static, + span: ( + 12, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 12, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 12, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 12, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 12, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 12, + 16, + ), + }, + Token { + kind: Ampersand, + span: ( + 12, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 12, + 20, + ), + }, + Token { + kind: Ellipsis, + span: ( + 12, + 24, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 12, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 12, + 29, + ), + }, + Token { + kind: Colon, + span: ( + 12, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 12, + 32, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 12, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 12, + 39, + ), + }, + Token { + kind: DoubleColon, + span: ( + 12, + 42, + ), + }, + Token { + kind: From, + span: ( + 12, + 44, + ), + }, + Token { + kind: LeftParen, + span: ( + 12, + 48, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 12, + 49, + ), + }, + Token { + kind: RightParen, + span: ( + 12, + 51, + ), + }, + Token { + kind: SemiColon, + span: ( + 12, + 52, + ), + }, + Token { + kind: Static, + span: ( + 13, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 13, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 13, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 13, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 13, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 13, + 16, + ), + }, + Token { + kind: Ampersand, + span: ( + 13, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 13, + 20, + ), + }, + Token { + kind: Ampersand, + span: ( + 13, + 24, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 13, + 25, + ), + }, + Token { + kind: RightParen, + span: ( + 13, + 27, + ), + }, + Token { + kind: Colon, + span: ( + 13, + 28, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 13, + 30, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 13, + 34, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 13, + 37, + ), + }, + Token { + kind: DoubleColon, + span: ( + 13, + 40, + ), + }, + Token { + kind: From, + span: ( + 13, + 42, + ), + }, + Token { + kind: LeftParen, + span: ( + 13, + 46, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 13, + 47, + ), + }, + Token { + kind: RightParen, + span: ( + 13, + 49, + ), + }, + Token { + kind: SemiColon, + span: ( + 13, + 50, + ), + }, + Token { + kind: Static, + span: ( + 14, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 14, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 14, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 14, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 14, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 14, + 16, + ), + }, + Token { + kind: Ampersand, + span: ( + 14, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 14, + 20, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 14, + 24, + ), + }, + Token { + kind: RightParen, + span: ( + 14, + 26, + ), + }, + Token { + kind: Colon, + span: ( + 14, + 27, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 14, + 29, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 14, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 14, + 36, + ), + }, + Token { + kind: DoubleColon, + span: ( + 14, + 39, + ), + }, + Token { + kind: From, + span: ( + 14, + 41, + ), + }, + Token { + kind: LeftParen, + span: ( + 14, + 45, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 14, + 46, + ), + }, + Token { + kind: RightParen, + span: ( + 14, + 48, + ), + }, + Token { + kind: SemiColon, + span: ( + 14, + 49, + ), + }, + Token { + kind: Static, + span: ( + 15, + 1, + ), + }, + Token { + kind: Function, + span: ( + 15, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 15, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 15, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 15, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 15, + 22, + ), + }, + Token { + kind: Ampersand, + span: ( + 15, + 25, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 15, + 26, + ), + }, + Token { + kind: Ampersand, + span: ( + 15, + 30, + ), + }, + Token { + kind: Ellipsis, + span: ( + 15, + 31, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 15, + 34, + ), + }, + Token { + kind: RightParen, + span: ( + 15, + 36, + ), + }, + Token { + kind: Colon, + span: ( + 15, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 15, + 39, + ), + }, + Token { + kind: LeftBrace, + span: ( + 15, + 43, + ), + }, + Token { + kind: Return, + span: ( + 15, + 45, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 15, + 52, + ), + }, + Token { + kind: DoubleColon, + span: ( + 15, + 55, + ), + }, + Token { + kind: From, + span: ( + 15, + 57, + ), + }, + Token { + kind: LeftParen, + span: ( + 15, + 61, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 15, + 62, + ), + }, + Token { + kind: RightParen, + span: ( + 15, + 64, + ), + }, + Token { + kind: SemiColon, + span: ( + 15, + 65, + ), + }, + Token { + kind: RightBrace, + span: ( + 15, + 67, + ), + }, + Token { + kind: SemiColon, + span: ( + 15, + 68, + ), + }, + Token { + kind: Static, + span: ( + 16, + 1, + ), + }, + Token { + kind: Function, + span: ( + 16, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 16, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 16, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 16, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 16, + 22, + ), + }, + Token { + kind: Ampersand, + span: ( + 16, + 25, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 16, + 26, + ), + }, + Token { + kind: Ellipsis, + span: ( + 16, + 30, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 16, + 33, + ), + }, + Token { + kind: RightParen, + span: ( + 16, + 35, + ), + }, + Token { + kind: Colon, + span: ( + 16, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 16, + 38, + ), + }, + Token { + kind: LeftBrace, + span: ( + 16, + 42, + ), + }, + Token { + kind: Return, + span: ( + 16, + 44, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 16, + 51, + ), + }, + Token { + kind: DoubleColon, + span: ( + 16, + 54, + ), + }, + Token { + kind: From, + span: ( + 16, + 56, + ), + }, + Token { + kind: LeftParen, + span: ( + 16, + 60, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 16, + 61, + ), + }, + Token { + kind: RightParen, + span: ( + 16, + 63, + ), + }, + Token { + kind: SemiColon, + span: ( + 16, + 64, + ), + }, + Token { + kind: RightBrace, + span: ( + 16, + 66, + ), + }, + Token { + kind: SemiColon, + span: ( + 16, + 67, + ), + }, + Token { + kind: Static, + span: ( + 17, + 1, + ), + }, + Token { + kind: Function, + span: ( + 17, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 17, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 17, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 17, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 17, + 22, + ), + }, + Token { + kind: Ampersand, + span: ( + 17, + 25, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 17, + 26, + ), + }, + Token { + kind: Ampersand, + span: ( + 17, + 30, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 17, + 31, + ), + }, + Token { + kind: RightParen, + span: ( + 17, + 33, + ), + }, + Token { + kind: Colon, + span: ( + 17, + 34, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 17, + 36, + ), + }, + Token { + kind: LeftBrace, + span: ( + 17, + 40, + ), + }, + Token { + kind: Return, + span: ( + 17, + 42, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 17, + 49, + ), + }, + Token { + kind: DoubleColon, + span: ( + 17, + 52, + ), + }, + Token { + kind: From, + span: ( + 17, + 54, + ), + }, + Token { + kind: LeftParen, + span: ( + 17, + 58, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 17, + 59, + ), + }, + Token { + kind: RightParen, + span: ( + 17, + 61, + ), + }, + Token { + kind: SemiColon, + span: ( + 17, + 62, + ), + }, + Token { + kind: RightBrace, + span: ( + 17, + 64, + ), + }, + Token { + kind: SemiColon, + span: ( + 17, + 65, + ), + }, + Token { + kind: Static, + span: ( + 18, + 1, + ), + }, + Token { + kind: Function, + span: ( + 18, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 18, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 18, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 18, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 18, + 22, + ), + }, + Token { + kind: Ampersand, + span: ( + 18, + 25, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 18, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 18, + 30, + ), + }, + Token { + kind: RightParen, + span: ( + 18, + 32, + ), + }, + Token { + kind: Colon, + span: ( + 18, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 18, + 35, + ), + }, + Token { + kind: LeftBrace, + span: ( + 18, + 39, + ), + }, + Token { + kind: Return, + span: ( + 18, + 41, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 18, + 48, + ), + }, + Token { + kind: DoubleColon, + span: ( + 18, + 51, + ), + }, + Token { + kind: From, + span: ( + 18, + 53, + ), + }, + Token { + kind: LeftParen, + span: ( + 18, + 57, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 18, + 58, + ), + }, + Token { + kind: RightParen, + span: ( + 18, + 60, + ), + }, + Token { + kind: SemiColon, + span: ( + 18, + 61, + ), + }, + Token { + kind: RightBrace, + span: ( + 18, + 63, + ), + }, + Token { + kind: SemiColon, + span: ( + 18, + 64, + ), + }, + Token { + kind: Static, + span: ( + 19, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 19, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 19, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 19, + 12, + ), + }, + Token { + kind: Pipe, + span: ( + 19, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 19, + 16, + ), + }, + Token { + kind: Pipe, + span: ( + 19, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 19, + 20, + ), + }, + Token { + kind: Ampersand, + span: ( + 19, + 24, + ), + }, + Token { + kind: Ellipsis, + span: ( + 19, + 25, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 19, + 28, + ), + }, + Token { + kind: RightParen, + span: ( + 19, + 30, + ), + }, + Token { + kind: Colon, + span: ( + 19, + 31, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 19, + 33, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 19, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 19, + 40, + ), + }, + Token { + kind: DoubleColon, + span: ( + 19, + 43, + ), + }, + Token { + kind: From, + span: ( + 19, + 45, + ), + }, + Token { + kind: LeftParen, + span: ( + 19, + 49, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 19, + 50, + ), + }, + Token { + kind: RightParen, + span: ( + 19, + 52, + ), + }, + Token { + kind: SemiColon, + span: ( + 19, + 53, + ), + }, + Token { + kind: Static, + span: ( + 20, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 20, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 20, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 20, + 12, + ), + }, + Token { + kind: Pipe, + span: ( + 20, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 20, + 16, + ), + }, + Token { + kind: Pipe, + span: ( + 20, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 20, + 20, + ), + }, + Token { + kind: Ellipsis, + span: ( + 20, + 24, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 20, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 20, + 29, + ), + }, + Token { + kind: Colon, + span: ( + 20, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 20, + 32, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 20, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 20, + 39, + ), + }, + Token { + kind: DoubleColon, + span: ( + 20, + 42, + ), + }, + Token { + kind: From, + span: ( + 20, + 44, + ), + }, + Token { + kind: LeftParen, + span: ( + 20, + 48, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 20, + 49, + ), + }, + Token { + kind: RightParen, + span: ( + 20, + 51, + ), + }, + Token { + kind: SemiColon, + span: ( + 20, + 52, + ), + }, + Token { + kind: Static, + span: ( + 21, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 21, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 21, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 21, + 12, + ), + }, + Token { + kind: Pipe, + span: ( + 21, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 21, + 16, + ), + }, + Token { + kind: Pipe, + span: ( + 21, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 21, + 20, + ), + }, + Token { + kind: Ampersand, + span: ( + 21, + 24, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 21, + 25, + ), + }, + Token { + kind: RightParen, + span: ( + 21, + 27, + ), + }, + Token { + kind: Colon, + span: ( + 21, + 28, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 21, + 30, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 21, + 34, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 21, + 37, + ), + }, + Token { + kind: DoubleColon, + span: ( + 21, + 40, + ), + }, + Token { + kind: From, + span: ( + 21, + 42, + ), + }, + Token { + kind: LeftParen, + span: ( + 21, + 46, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 21, + 47, + ), + }, + Token { + kind: RightParen, + span: ( + 21, + 49, + ), + }, + Token { + kind: SemiColon, + span: ( + 21, + 50, + ), + }, + Token { + kind: Static, + span: ( + 22, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 22, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 22, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 22, + 12, + ), + }, + Token { + kind: Pipe, + span: ( + 22, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 22, + 16, + ), + }, + Token { + kind: Pipe, + span: ( + 22, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 22, + 20, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 22, + 24, + ), + }, + Token { + kind: RightParen, + span: ( + 22, + 26, + ), + }, + Token { + kind: Colon, + span: ( + 22, + 27, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 22, + 29, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 22, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 22, + 36, + ), + }, + Token { + kind: DoubleColon, + span: ( + 22, + 39, + ), + }, + Token { + kind: From, + span: ( + 22, + 41, + ), + }, + Token { + kind: LeftParen, + span: ( + 22, + 45, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 22, + 46, + ), + }, + Token { + kind: RightParen, + span: ( + 22, + 48, + ), + }, + Token { + kind: SemiColon, + span: ( + 22, + 49, + ), + }, + Token { + kind: Static, + span: ( + 23, + 1, + ), + }, + Token { + kind: Function, + span: ( + 23, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 23, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 23, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 23, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 23, + 22, + ), + }, + Token { + kind: Pipe, + span: ( + 23, + 25, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 23, + 26, + ), + }, + Token { + kind: Ampersand, + span: ( + 23, + 30, + ), + }, + Token { + kind: Ellipsis, + span: ( + 23, + 31, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 23, + 34, + ), + }, + Token { + kind: RightParen, + span: ( + 23, + 36, + ), + }, + Token { + kind: Colon, + span: ( + 23, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 23, + 39, + ), + }, + Token { + kind: LeftBrace, + span: ( + 23, + 43, + ), + }, + Token { + kind: Return, + span: ( + 23, + 45, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 23, + 52, + ), + }, + Token { + kind: DoubleColon, + span: ( + 23, + 55, + ), + }, + Token { + kind: From, + span: ( + 23, + 57, + ), + }, + Token { + kind: LeftParen, + span: ( + 23, + 61, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 23, + 62, + ), + }, + Token { + kind: RightParen, + span: ( + 23, + 64, + ), + }, + Token { + kind: SemiColon, + span: ( + 23, + 65, + ), + }, + Token { + kind: RightBrace, + span: ( + 23, + 67, + ), + }, + Token { + kind: SemiColon, + span: ( + 23, + 68, + ), + }, + Token { + kind: Static, + span: ( + 24, + 1, + ), + }, + Token { + kind: Function, + span: ( + 24, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 24, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 24, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 24, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 24, + 22, + ), + }, + Token { + kind: Pipe, + span: ( + 24, + 25, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 24, + 26, + ), + }, + Token { + kind: Ellipsis, + span: ( + 24, + 30, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 24, + 33, + ), + }, + Token { + kind: RightParen, + span: ( + 24, + 35, + ), + }, + Token { + kind: Colon, + span: ( + 24, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 24, + 38, + ), + }, + Token { + kind: LeftBrace, + span: ( + 24, + 42, + ), + }, + Token { + kind: Return, + span: ( + 24, + 44, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 24, + 51, + ), + }, + Token { + kind: DoubleColon, + span: ( + 24, + 54, + ), + }, + Token { + kind: From, + span: ( + 24, + 56, + ), + }, + Token { + kind: LeftParen, + span: ( + 24, + 60, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 24, + 61, + ), + }, + Token { + kind: RightParen, + span: ( + 24, + 63, + ), + }, + Token { + kind: SemiColon, + span: ( + 24, + 64, + ), + }, + Token { + kind: RightBrace, + span: ( + 24, + 66, + ), + }, + Token { + kind: SemiColon, + span: ( + 24, + 67, + ), + }, + Token { + kind: Static, + span: ( + 25, + 1, + ), + }, + Token { + kind: Function, + span: ( + 25, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 25, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 25, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 25, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 25, + 22, + ), + }, + Token { + kind: Pipe, + span: ( + 25, + 25, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 25, + 26, + ), + }, + Token { + kind: Ampersand, + span: ( + 25, + 30, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 25, + 31, + ), + }, + Token { + kind: RightParen, + span: ( + 25, + 33, + ), + }, + Token { + kind: Colon, + span: ( + 25, + 34, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 25, + 36, + ), + }, + Token { + kind: LeftBrace, + span: ( + 25, + 40, + ), + }, + Token { + kind: Return, + span: ( + 25, + 42, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 25, + 49, + ), + }, + Token { + kind: DoubleColon, + span: ( + 25, + 52, + ), + }, + Token { + kind: From, + span: ( + 25, + 54, + ), + }, + Token { + kind: LeftParen, + span: ( + 25, + 58, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 25, + 59, + ), + }, + Token { + kind: RightParen, + span: ( + 25, + 61, + ), + }, + Token { + kind: SemiColon, + span: ( + 25, + 62, + ), + }, + Token { + kind: RightBrace, + span: ( + 25, + 64, + ), + }, + Token { + kind: SemiColon, + span: ( + 25, + 65, + ), + }, + Token { + kind: Static, + span: ( + 26, + 1, + ), + }, + Token { + kind: Function, + span: ( + 26, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 26, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 26, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 26, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 26, + 22, + ), + }, + Token { + kind: Pipe, + span: ( + 26, + 25, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 26, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 26, + 30, + ), + }, + Token { + kind: RightParen, + span: ( + 26, + 32, + ), + }, + Token { + kind: Colon, + span: ( + 26, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 26, + 35, + ), + }, + Token { + kind: LeftBrace, + span: ( + 26, + 39, + ), + }, + Token { + kind: Return, + span: ( + 26, + 41, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 26, + 48, + ), + }, + Token { + kind: DoubleColon, + span: ( + 26, + 51, + ), + }, + Token { + kind: From, + span: ( + 26, + 53, + ), + }, + Token { + kind: LeftParen, + span: ( + 26, + 57, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 26, + 58, + ), + }, + Token { + kind: RightParen, + span: ( + 26, + 60, + ), + }, + Token { + kind: SemiColon, + span: ( + 26, + 61, + ), + }, + Token { + kind: RightBrace, + span: ( + 26, + 63, + ), + }, + Token { + kind: SemiColon, + span: ( + 26, + 64, + ), + }, + Token { + kind: Static, + span: ( + 27, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 27, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 27, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 27, + 12, + ), + }, + Token { + kind: Pipe, + span: ( + 27, + 15, + ), + }, + Token { + kind: LeftParen, + span: ( + 27, + 16, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 27, + 17, + ), + }, + Token { + kind: Ampersand, + span: ( + 27, + 20, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 27, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 27, + 24, + ), + }, + Token { + kind: Ampersand, + span: ( + 27, + 26, + ), + }, + Token { + kind: Ellipsis, + span: ( + 27, + 27, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 27, + 30, + ), + }, + Token { + kind: RightParen, + span: ( + 27, + 32, + ), + }, + Token { + kind: Colon, + span: ( + 27, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 27, + 35, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 27, + 39, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 27, + 42, + ), + }, + Token { + kind: DoubleColon, + span: ( + 27, + 45, + ), + }, + Token { + kind: From, + span: ( + 27, + 47, + ), + }, + Token { + kind: LeftParen, + span: ( + 27, + 51, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 27, + 52, + ), + }, + Token { + kind: RightParen, + span: ( + 27, + 54, + ), + }, + Token { + kind: SemiColon, + span: ( + 27, + 55, + ), + }, + Token { + kind: Static, + span: ( + 28, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 28, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 28, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 28, + 12, + ), + }, + Token { + kind: Pipe, + span: ( + 28, + 15, + ), + }, + Token { + kind: LeftParen, + span: ( + 28, + 16, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 28, + 17, + ), + }, + Token { + kind: Ampersand, + span: ( + 28, + 20, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 28, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 28, + 24, + ), + }, + Token { + kind: Ellipsis, + span: ( + 28, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 28, + 29, + ), + }, + Token { + kind: RightParen, + span: ( + 28, + 31, + ), + }, + Token { + kind: Colon, + span: ( + 28, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 28, + 34, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 28, + 38, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 28, + 41, + ), + }, + Token { + kind: DoubleColon, + span: ( + 28, + 44, + ), + }, + Token { + kind: From, + span: ( + 28, + 46, + ), + }, + Token { + kind: LeftParen, + span: ( + 28, + 50, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 28, + 51, + ), + }, + Token { + kind: RightParen, + span: ( + 28, + 53, + ), + }, + Token { + kind: SemiColon, + span: ( + 28, + 54, + ), + }, + Token { + kind: Static, + span: ( + 29, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 29, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 29, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 29, + 12, + ), + }, + Token { + kind: Pipe, + span: ( + 29, + 15, + ), + }, + Token { + kind: LeftParen, + span: ( + 29, + 16, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 29, + 17, + ), + }, + Token { + kind: Ampersand, + span: ( + 29, + 20, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 29, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 29, + 24, + ), + }, + Token { + kind: Ampersand, + span: ( + 29, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 29, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 29, + 29, + ), + }, + Token { + kind: Colon, + span: ( + 29, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 29, + 32, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 29, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 29, + 39, + ), + }, + Token { + kind: DoubleColon, + span: ( + 29, + 42, + ), + }, + Token { + kind: From, + span: ( + 29, + 44, + ), + }, + Token { + kind: LeftParen, + span: ( + 29, + 48, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 29, + 49, + ), + }, + Token { + kind: RightParen, + span: ( + 29, + 51, + ), + }, + Token { + kind: SemiColon, + span: ( + 29, + 52, + ), + }, + Token { + kind: Static, + span: ( + 30, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 30, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 30, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 30, + 12, + ), + }, + Token { + kind: Pipe, + span: ( + 30, + 15, + ), + }, + Token { + kind: LeftParen, + span: ( + 30, + 16, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 30, + 17, + ), + }, + Token { + kind: Ampersand, + span: ( + 30, + 20, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 30, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 30, + 24, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 30, + 26, + ), + }, + Token { + kind: RightParen, + span: ( + 30, + 28, + ), + }, + Token { + kind: Colon, + span: ( + 30, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 30, + 31, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 30, + 35, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 30, + 38, + ), + }, + Token { + kind: DoubleColon, + span: ( + 30, + 41, + ), + }, + Token { + kind: From, + span: ( + 30, + 43, + ), + }, + Token { + kind: LeftParen, + span: ( + 30, + 47, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 30, + 48, + ), + }, + Token { + kind: RightParen, + span: ( + 30, + 50, + ), + }, + Token { + kind: SemiColon, + span: ( + 30, + 51, + ), + }, + Token { + kind: Static, + span: ( + 31, + 1, + ), + }, + Token { + kind: Function, + span: ( + 31, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 31, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 31, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 31, + 21, + ), + }, + Token { + kind: LeftParen, + span: ( + 31, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 31, + 23, + ), + }, + Token { + kind: Ampersand, + span: ( + 31, + 26, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 31, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 31, + 30, + ), + }, + Token { + kind: Ampersand, + span: ( + 31, + 32, + ), + }, + Token { + kind: Ellipsis, + span: ( + 31, + 33, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 31, + 36, + ), + }, + Token { + kind: RightParen, + span: ( + 31, + 38, + ), + }, + Token { + kind: Colon, + span: ( + 31, + 39, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 31, + 41, + ), + }, + Token { + kind: LeftBrace, + span: ( + 31, + 45, + ), + }, + Token { + kind: Return, + span: ( + 31, + 47, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 31, + 54, + ), + }, + Token { + kind: DoubleColon, + span: ( + 31, + 57, + ), + }, + Token { + kind: From, + span: ( + 31, + 59, + ), + }, + Token { + kind: LeftParen, + span: ( + 31, + 63, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 31, + 64, + ), + }, + Token { + kind: RightParen, + span: ( + 31, + 66, + ), + }, + Token { + kind: SemiColon, + span: ( + 31, + 67, + ), + }, + Token { + kind: RightBrace, + span: ( + 31, + 69, + ), + }, + Token { + kind: SemiColon, + span: ( + 31, + 70, + ), + }, + Token { + kind: Static, + span: ( + 32, + 1, + ), + }, + Token { + kind: Function, + span: ( + 32, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 32, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 32, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 32, + 21, + ), + }, + Token { + kind: LeftParen, + span: ( + 32, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 32, + 23, + ), + }, + Token { + kind: Ampersand, + span: ( + 32, + 26, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 32, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 32, + 30, + ), + }, + Token { + kind: Ellipsis, + span: ( + 32, + 32, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 32, + 35, + ), + }, + Token { + kind: RightParen, + span: ( + 32, + 37, + ), + }, + Token { + kind: Colon, + span: ( + 32, + 38, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 32, + 40, + ), + }, + Token { + kind: LeftBrace, + span: ( + 32, + 44, + ), + }, + Token { + kind: Return, + span: ( + 32, + 46, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 32, + 53, + ), + }, + Token { + kind: DoubleColon, + span: ( + 32, + 56, + ), + }, + Token { + kind: From, + span: ( + 32, + 58, + ), + }, + Token { + kind: LeftParen, + span: ( + 32, + 62, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 32, + 63, + ), + }, + Token { + kind: RightParen, + span: ( + 32, + 65, + ), + }, + Token { + kind: SemiColon, + span: ( + 32, + 66, + ), + }, + Token { + kind: RightBrace, + span: ( + 32, + 68, + ), + }, + Token { + kind: SemiColon, + span: ( + 32, + 69, + ), + }, + Token { + kind: Static, + span: ( + 33, + 1, + ), + }, + Token { + kind: Function, + span: ( + 33, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 33, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 33, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 33, + 21, + ), + }, + Token { + kind: LeftParen, + span: ( + 33, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 33, + 23, + ), + }, + Token { + kind: Ampersand, + span: ( + 33, + 26, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 33, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 33, + 30, + ), + }, + Token { + kind: Ampersand, + span: ( + 33, + 32, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 33, + 33, + ), + }, + Token { + kind: RightParen, + span: ( + 33, + 35, + ), + }, + Token { + kind: Colon, + span: ( + 33, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 33, + 38, + ), + }, + Token { + kind: LeftBrace, + span: ( + 33, + 42, + ), + }, + Token { + kind: Return, + span: ( + 33, + 44, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 33, + 51, + ), + }, + Token { + kind: DoubleColon, + span: ( + 33, + 54, + ), + }, + Token { + kind: From, + span: ( + 33, + 56, + ), + }, + Token { + kind: LeftParen, + span: ( + 33, + 60, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 33, + 61, + ), + }, + Token { + kind: RightParen, + span: ( + 33, + 63, + ), + }, + Token { + kind: SemiColon, + span: ( + 33, + 64, + ), + }, + Token { + kind: RightBrace, + span: ( + 33, + 66, + ), + }, + Token { + kind: SemiColon, + span: ( + 33, + 67, + ), + }, + Token { + kind: Static, + span: ( + 34, + 1, + ), + }, + Token { + kind: Function, + span: ( + 34, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 34, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 34, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 34, + 21, + ), + }, + Token { + kind: LeftParen, + span: ( + 34, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 34, + 23, + ), + }, + Token { + kind: Ampersand, + span: ( + 34, + 26, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 34, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 34, + 30, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 34, + 32, + ), + }, + Token { + kind: RightParen, + span: ( + 34, + 34, + ), + }, + Token { + kind: Colon, + span: ( + 34, + 35, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 34, + 37, + ), + }, + Token { + kind: LeftBrace, + span: ( + 34, + 41, + ), + }, + Token { + kind: Return, + span: ( + 34, + 43, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 34, + 50, + ), + }, + Token { + kind: DoubleColon, + span: ( + 34, + 53, + ), + }, + Token { + kind: From, + span: ( + 34, + 55, + ), + }, + Token { + kind: LeftParen, + span: ( + 34, + 59, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 34, + 60, + ), + }, + Token { + kind: RightParen, + span: ( + 34, + 62, + ), + }, + Token { + kind: SemiColon, + span: ( + 34, + 63, + ), + }, + Token { + kind: RightBrace, + span: ( + 34, + 65, + ), + }, + Token { + kind: SemiColon, + span: ( + 34, + 66, + ), + }, + Token { + kind: Static, + span: ( + 35, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 35, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 35, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 35, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 35, + 15, + ), + }, + Token { + kind: LeftParen, + span: ( + 35, + 16, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 35, + 17, + ), + }, + Token { + kind: Pipe, + span: ( + 35, + 20, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 35, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 35, + 24, + ), + }, + Token { + kind: Ampersand, + span: ( + 35, + 26, + ), + }, + Token { + kind: Ellipsis, + span: ( + 35, + 27, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 35, + 30, + ), + }, + Token { + kind: RightParen, + span: ( + 35, + 32, + ), + }, + Token { + kind: Colon, + span: ( + 35, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 35, + 35, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 35, + 39, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 35, + 42, + ), + }, + Token { + kind: DoubleColon, + span: ( + 35, + 45, + ), + }, + Token { + kind: From, + span: ( + 35, + 47, + ), + }, + Token { + kind: LeftParen, + span: ( + 35, + 51, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 35, + 52, + ), + }, + Token { + kind: RightParen, + span: ( + 35, + 54, + ), + }, + Token { + kind: SemiColon, + span: ( + 35, + 55, + ), + }, + Token { + kind: Static, + span: ( + 36, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 36, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 36, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 36, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 36, + 15, + ), + }, + Token { + kind: LeftParen, + span: ( + 36, + 16, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 36, + 17, + ), + }, + Token { + kind: Pipe, + span: ( + 36, + 20, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 36, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 36, + 24, + ), + }, + Token { + kind: Ellipsis, + span: ( + 36, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 36, + 29, + ), + }, + Token { + kind: RightParen, + span: ( + 36, + 31, + ), + }, + Token { + kind: Colon, + span: ( + 36, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 36, + 34, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 36, + 38, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 36, + 41, + ), + }, + Token { + kind: DoubleColon, + span: ( + 36, + 44, + ), + }, + Token { + kind: From, + span: ( + 36, + 46, + ), + }, + Token { + kind: LeftParen, + span: ( + 36, + 50, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 36, + 51, + ), + }, + Token { + kind: RightParen, + span: ( + 36, + 53, + ), + }, + Token { + kind: SemiColon, + span: ( + 36, + 54, + ), + }, + Token { + kind: Static, + span: ( + 37, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 37, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 37, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 37, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 37, + 15, + ), + }, + Token { + kind: LeftParen, + span: ( + 37, + 16, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 37, + 17, + ), + }, + Token { + kind: Pipe, + span: ( + 37, + 20, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 37, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 37, + 24, + ), + }, + Token { + kind: Ampersand, + span: ( + 37, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 37, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 37, + 29, + ), + }, + Token { + kind: Colon, + span: ( + 37, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 37, + 32, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 37, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 37, + 39, + ), + }, + Token { + kind: DoubleColon, + span: ( + 37, + 42, + ), + }, + Token { + kind: From, + span: ( + 37, + 44, + ), + }, + Token { + kind: LeftParen, + span: ( + 37, + 48, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 37, + 49, + ), + }, + Token { + kind: RightParen, + span: ( + 37, + 51, + ), + }, + Token { + kind: SemiColon, + span: ( + 37, + 52, + ), + }, + Token { + kind: Static, + span: ( + 38, + 1, + ), + }, + Token { + kind: Fn, + span: ( + 38, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 38, + 11, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 38, + 12, + ), + }, + Token { + kind: Ampersand, + span: ( + 38, + 15, + ), + }, + Token { + kind: LeftParen, + span: ( + 38, + 16, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 38, + 17, + ), + }, + Token { + kind: Pipe, + span: ( + 38, + 20, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 38, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 38, + 24, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 38, + 26, + ), + }, + Token { + kind: RightParen, + span: ( + 38, + 28, + ), + }, + Token { + kind: Colon, + span: ( + 38, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 38, + 31, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 38, + 35, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 38, + 38, + ), + }, + Token { + kind: DoubleColon, + span: ( + 38, + 41, + ), + }, + Token { + kind: From, + span: ( + 38, + 43, + ), + }, + Token { + kind: LeftParen, + span: ( + 38, + 47, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 38, + 48, + ), + }, + Token { + kind: RightParen, + span: ( + 38, + 50, + ), + }, + Token { + kind: SemiColon, + span: ( + 38, + 51, + ), + }, + Token { + kind: Static, + span: ( + 39, + 1, + ), + }, + Token { + kind: Function, + span: ( + 39, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 39, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 39, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 39, + 21, + ), + }, + Token { + kind: LeftParen, + span: ( + 39, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 39, + 23, + ), + }, + Token { + kind: Pipe, + span: ( + 39, + 26, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 39, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 39, + 30, + ), + }, + Token { + kind: Ampersand, + span: ( + 39, + 32, + ), + }, + Token { + kind: Ellipsis, + span: ( + 39, + 33, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 39, + 36, + ), + }, + Token { + kind: RightParen, + span: ( + 39, + 38, + ), + }, + Token { + kind: Colon, + span: ( + 39, + 39, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 39, + 41, + ), + }, + Token { + kind: LeftBrace, + span: ( + 39, + 45, + ), + }, + Token { + kind: Return, + span: ( + 39, + 47, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 39, + 54, + ), + }, + Token { + kind: DoubleColon, + span: ( + 39, + 57, + ), + }, + Token { + kind: From, + span: ( + 39, + 59, + ), + }, + Token { + kind: LeftParen, + span: ( + 39, + 63, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 39, + 64, + ), + }, + Token { + kind: RightParen, + span: ( + 39, + 66, + ), + }, + Token { + kind: SemiColon, + span: ( + 39, + 67, + ), + }, + Token { + kind: RightBrace, + span: ( + 39, + 69, + ), + }, + Token { + kind: SemiColon, + span: ( + 39, + 70, + ), + }, + Token { + kind: Static, + span: ( + 40, + 1, + ), + }, + Token { + kind: Function, + span: ( + 40, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 40, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 40, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 40, + 21, + ), + }, + Token { + kind: LeftParen, + span: ( + 40, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 40, + 23, + ), + }, + Token { + kind: Pipe, + span: ( + 40, + 26, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 40, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 40, + 30, + ), + }, + Token { + kind: Ellipsis, + span: ( + 40, + 32, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 40, + 35, + ), + }, + Token { + kind: RightParen, + span: ( + 40, + 37, + ), + }, + Token { + kind: Colon, + span: ( + 40, + 38, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 40, + 40, + ), + }, + Token { + kind: LeftBrace, + span: ( + 40, + 44, + ), + }, + Token { + kind: Return, + span: ( + 40, + 46, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 40, + 53, + ), + }, + Token { + kind: DoubleColon, + span: ( + 40, + 56, + ), + }, + Token { + kind: From, + span: ( + 40, + 58, + ), + }, + Token { + kind: LeftParen, + span: ( + 40, + 62, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 40, + 63, + ), + }, + Token { + kind: RightParen, + span: ( + 40, + 65, + ), + }, + Token { + kind: SemiColon, + span: ( + 40, + 66, + ), + }, + Token { + kind: RightBrace, + span: ( + 40, + 68, + ), + }, + Token { + kind: SemiColon, + span: ( + 40, + 69, + ), + }, + Token { + kind: Static, + span: ( + 41, + 1, + ), + }, + Token { + kind: Function, + span: ( + 41, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 41, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 41, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 41, + 21, + ), + }, + Token { + kind: LeftParen, + span: ( + 41, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 41, + 23, + ), + }, + Token { + kind: Pipe, + span: ( + 41, + 26, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 41, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 41, + 30, + ), + }, + Token { + kind: Ampersand, + span: ( + 41, + 32, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 41, + 33, + ), + }, + Token { + kind: RightParen, + span: ( + 41, + 35, + ), + }, + Token { + kind: Colon, + span: ( + 41, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 41, + 38, + ), + }, + Token { + kind: LeftBrace, + span: ( + 41, + 42, + ), + }, + Token { + kind: Return, + span: ( + 41, + 44, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 41, + 51, + ), + }, + Token { + kind: DoubleColon, + span: ( + 41, + 54, + ), + }, + Token { + kind: From, + span: ( + 41, + 56, + ), + }, + Token { + kind: LeftParen, + span: ( + 41, + 60, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 41, + 61, + ), + }, + Token { + kind: RightParen, + span: ( + 41, + 63, + ), + }, + Token { + kind: SemiColon, + span: ( + 41, + 64, + ), + }, + Token { + kind: RightBrace, + span: ( + 41, + 66, + ), + }, + Token { + kind: SemiColon, + span: ( + 41, + 67, + ), + }, + Token { + kind: Static, + span: ( + 42, + 1, + ), + }, + Token { + kind: Function, + span: ( + 42, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 42, + 17, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 42, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 42, + 21, + ), + }, + Token { + kind: LeftParen, + span: ( + 42, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 42, + 23, + ), + }, + Token { + kind: Pipe, + span: ( + 42, + 26, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 42, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 42, + 30, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 42, + 32, + ), + }, + Token { + kind: RightParen, + span: ( + 42, + 34, + ), + }, + Token { + kind: Colon, + span: ( + 42, + 35, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 42, + 37, + ), + }, + Token { + kind: LeftBrace, + span: ( + 42, + 41, + ), + }, + Token { + kind: Return, + span: ( + 42, + 43, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 42, + 50, + ), + }, + Token { + kind: DoubleColon, + span: ( + 42, + 53, + ), + }, + Token { + kind: From, + span: ( + 42, + 55, + ), + }, + Token { + kind: LeftParen, + span: ( + 42, + 59, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 42, + 60, + ), + }, + Token { + kind: RightParen, + span: ( + 42, + 62, + ), + }, + Token { + kind: SemiColon, + span: ( + 42, + 63, + ), + }, + Token { + kind: RightBrace, + span: ( + 42, + 65, + ), + }, + Token { + kind: SemiColon, + span: ( + 42, + 66, + ), + }, + Token { + kind: Fn, + span: ( + 44, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 44, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 44, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 44, + 9, + ), + }, + Token { + kind: Ellipsis, + span: ( + 44, + 10, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 44, + 13, + ), + }, + Token { + kind: RightParen, + span: ( + 44, + 15, + ), + }, + Token { + kind: Colon, + span: ( + 44, + 16, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 44, + 18, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 44, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 44, + 25, + ), + }, + Token { + kind: DoubleColon, + span: ( + 44, + 28, + ), + }, + Token { + kind: From, + span: ( + 44, + 30, + ), + }, + Token { + kind: LeftParen, + span: ( + 44, + 34, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 44, + 35, + ), + }, + Token { + kind: RightParen, + span: ( + 44, + 37, + ), + }, + Token { + kind: SemiColon, + span: ( + 44, + 38, + ), + }, + Token { + kind: Fn, + span: ( + 45, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 45, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 45, + 5, + ), + }, + Token { + kind: Ellipsis, + span: ( + 45, + 9, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 45, + 12, + ), + }, + Token { + kind: RightParen, + span: ( + 45, + 14, + ), + }, + Token { + kind: Colon, + span: ( + 45, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 45, + 17, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 45, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 45, + 24, + ), + }, + Token { + kind: DoubleColon, + span: ( + 45, + 27, + ), + }, + Token { + kind: From, + span: ( + 45, + 29, + ), + }, + Token { + kind: LeftParen, + span: ( + 45, + 33, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 45, + 34, + ), + }, + Token { + kind: RightParen, + span: ( + 45, + 36, + ), + }, + Token { + kind: SemiColon, + span: ( + 45, + 37, + ), + }, + Token { + kind: Fn, + span: ( + 46, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 46, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 46, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 46, + 9, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 46, + 10, + ), + }, + Token { + kind: RightParen, + span: ( + 46, + 12, + ), + }, + Token { + kind: Colon, + span: ( + 46, + 13, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 46, + 15, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 46, + 19, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 46, + 22, + ), + }, + Token { + kind: DoubleColon, + span: ( + 46, + 25, + ), + }, + Token { + kind: From, + span: ( + 46, + 27, + ), + }, + Token { + kind: LeftParen, + span: ( + 46, + 31, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 46, + 32, + ), + }, + Token { + kind: RightParen, + span: ( + 46, + 34, + ), + }, + Token { + kind: SemiColon, + span: ( + 46, + 35, + ), + }, + Token { + kind: Fn, + span: ( + 47, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 47, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 47, + 5, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 47, + 9, + ), + }, + Token { + kind: RightParen, + span: ( + 47, + 11, + ), + }, + Token { + kind: Colon, + span: ( + 47, + 12, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 47, + 14, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 47, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 47, + 21, + ), + }, + Token { + kind: DoubleColon, + span: ( + 47, + 24, + ), + }, + Token { + kind: From, + span: ( + 47, + 26, + ), + }, + Token { + kind: LeftParen, + span: ( + 47, + 30, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 47, + 31, + ), + }, + Token { + kind: RightParen, + span: ( + 47, + 33, + ), + }, + Token { + kind: SemiColon, + span: ( + 47, + 34, + ), + }, + Token { + kind: Function, + span: ( + 48, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 48, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 48, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 48, + 15, + ), + }, + Token { + kind: Ellipsis, + span: ( + 48, + 16, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 48, + 19, + ), + }, + Token { + kind: RightParen, + span: ( + 48, + 21, + ), + }, + Token { + kind: Colon, + span: ( + 48, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 48, + 24, + ), + }, + Token { + kind: LeftBrace, + span: ( + 48, + 28, + ), + }, + Token { + kind: Return, + span: ( + 48, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 48, + 37, + ), + }, + Token { + kind: DoubleColon, + span: ( + 48, + 40, + ), + }, + Token { + kind: From, + span: ( + 48, + 42, + ), + }, + Token { + kind: LeftParen, + span: ( + 48, + 46, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 48, + 47, + ), + }, + Token { + kind: RightParen, + span: ( + 48, + 49, + ), + }, + Token { + kind: SemiColon, + span: ( + 48, + 50, + ), + }, + Token { + kind: RightBrace, + span: ( + 48, + 52, + ), + }, + Token { + kind: SemiColon, + span: ( + 48, + 53, + ), + }, + Token { + kind: Function, + span: ( + 49, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 49, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 49, + 11, + ), + }, + Token { + kind: Ellipsis, + span: ( + 49, + 15, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 49, + 18, + ), + }, + Token { + kind: RightParen, + span: ( + 49, + 20, + ), + }, + Token { + kind: Colon, + span: ( + 49, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 49, + 23, + ), + }, + Token { + kind: LeftBrace, + span: ( + 49, + 27, + ), + }, + Token { + kind: Return, + span: ( + 49, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 49, + 36, + ), + }, + Token { + kind: DoubleColon, + span: ( + 49, + 39, + ), + }, + Token { + kind: From, + span: ( + 49, + 41, + ), + }, + Token { + kind: LeftParen, + span: ( + 49, + 45, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 49, + 46, + ), + }, + Token { + kind: RightParen, + span: ( + 49, + 48, + ), + }, + Token { + kind: SemiColon, + span: ( + 49, + 49, + ), + }, + Token { + kind: RightBrace, + span: ( + 49, + 51, + ), + }, + Token { + kind: SemiColon, + span: ( + 49, + 52, + ), + }, + Token { + kind: Function, + span: ( + 50, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 50, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 50, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 50, + 15, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 50, + 16, + ), + }, + Token { + kind: RightParen, + span: ( + 50, + 18, + ), + }, + Token { + kind: Colon, + span: ( + 50, + 19, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 50, + 21, + ), + }, + Token { + kind: LeftBrace, + span: ( + 50, + 25, + ), + }, + Token { + kind: Return, + span: ( + 50, + 27, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 50, + 34, + ), + }, + Token { + kind: DoubleColon, + span: ( + 50, + 37, + ), + }, + Token { + kind: From, + span: ( + 50, + 39, + ), + }, + Token { + kind: LeftParen, + span: ( + 50, + 43, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 50, + 44, + ), + }, + Token { + kind: RightParen, + span: ( + 50, + 46, + ), + }, + Token { + kind: SemiColon, + span: ( + 50, + 47, + ), + }, + Token { + kind: RightBrace, + span: ( + 50, + 49, + ), + }, + Token { + kind: SemiColon, + span: ( + 50, + 50, + ), + }, + Token { + kind: Function, + span: ( + 51, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 51, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 51, + 11, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 51, + 15, + ), + }, + Token { + kind: RightParen, + span: ( + 51, + 17, + ), + }, + Token { + kind: Colon, + span: ( + 51, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 51, + 20, + ), + }, + Token { + kind: LeftBrace, + span: ( + 51, + 24, + ), + }, + Token { + kind: Return, + span: ( + 51, + 26, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 51, + 33, + ), + }, + Token { + kind: DoubleColon, + span: ( + 51, + 36, + ), + }, + Token { + kind: From, + span: ( + 51, + 38, + ), + }, + Token { + kind: LeftParen, + span: ( + 51, + 42, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 51, + 43, + ), + }, + Token { + kind: RightParen, + span: ( + 51, + 45, + ), + }, + Token { + kind: SemiColon, + span: ( + 51, + 46, + ), + }, + Token { + kind: RightBrace, + span: ( + 51, + 48, + ), + }, + Token { + kind: SemiColon, + span: ( + 51, + 49, + ), + }, + Token { + kind: Fn, + span: ( + 52, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 52, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 52, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 52, + 8, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 52, + 9, + ), + }, + Token { + kind: Ampersand, + span: ( + 52, + 12, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 52, + 13, + ), + }, + Token { + kind: Ampersand, + span: ( + 52, + 17, + ), + }, + Token { + kind: Ellipsis, + span: ( + 52, + 18, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 52, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 52, + 23, + ), + }, + Token { + kind: Colon, + span: ( + 52, + 24, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 52, + 26, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 52, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 52, + 33, + ), + }, + Token { + kind: DoubleColon, + span: ( + 52, + 36, + ), + }, + Token { + kind: From, + span: ( + 52, + 38, + ), + }, + Token { + kind: LeftParen, + span: ( + 52, + 42, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 52, + 43, + ), + }, + Token { + kind: RightParen, + span: ( + 52, + 45, + ), + }, + Token { + kind: SemiColon, + span: ( + 52, + 46, + ), + }, + Token { + kind: Fn, + span: ( + 53, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 53, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 53, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 53, + 8, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 53, + 9, + ), + }, + Token { + kind: Ampersand, + span: ( + 53, + 12, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 53, + 13, + ), + }, + Token { + kind: Ellipsis, + span: ( + 53, + 17, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 53, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 53, + 22, + ), + }, + Token { + kind: Colon, + span: ( + 53, + 23, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 53, + 25, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 53, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 53, + 32, + ), + }, + Token { + kind: DoubleColon, + span: ( + 53, + 35, + ), + }, + Token { + kind: From, + span: ( + 53, + 37, + ), + }, + Token { + kind: LeftParen, + span: ( + 53, + 41, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 53, + 42, + ), + }, + Token { + kind: RightParen, + span: ( + 53, + 44, + ), + }, + Token { + kind: SemiColon, + span: ( + 53, + 45, + ), + }, + Token { + kind: Fn, + span: ( + 54, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 54, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 54, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 54, + 8, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 54, + 9, + ), + }, + Token { + kind: Ampersand, + span: ( + 54, + 12, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 54, + 13, + ), + }, + Token { + kind: Ampersand, + span: ( + 54, + 17, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 54, + 18, + ), + }, + Token { + kind: RightParen, + span: ( + 54, + 20, + ), + }, + Token { + kind: Colon, + span: ( + 54, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 54, + 23, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 54, + 27, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 54, + 30, + ), + }, + Token { + kind: DoubleColon, + span: ( + 54, + 33, + ), + }, + Token { + kind: From, + span: ( + 54, + 35, + ), + }, + Token { + kind: LeftParen, + span: ( + 54, + 39, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 54, + 40, + ), + }, + Token { + kind: RightParen, + span: ( + 54, + 42, + ), + }, + Token { + kind: SemiColon, + span: ( + 54, + 43, + ), + }, + Token { + kind: Fn, + span: ( + 55, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 55, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 55, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 55, + 8, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 55, + 9, + ), + }, + Token { + kind: Ampersand, + span: ( + 55, + 12, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 55, + 13, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 55, + 17, + ), + }, + Token { + kind: RightParen, + span: ( + 55, + 19, + ), + }, + Token { + kind: Colon, + span: ( + 55, + 20, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 55, + 22, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 55, + 26, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 55, + 29, + ), + }, + Token { + kind: DoubleColon, + span: ( + 55, + 32, + ), + }, + Token { + kind: From, + span: ( + 55, + 34, + ), + }, + Token { + kind: LeftParen, + span: ( + 55, + 38, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 55, + 39, + ), + }, + Token { + kind: RightParen, + span: ( + 55, + 41, + ), + }, + Token { + kind: SemiColon, + span: ( + 55, + 42, + ), + }, + Token { + kind: Function, + span: ( + 56, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 56, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 56, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 56, + 14, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 56, + 15, + ), + }, + Token { + kind: Ampersand, + span: ( + 56, + 18, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 56, + 19, + ), + }, + Token { + kind: Ampersand, + span: ( + 56, + 23, + ), + }, + Token { + kind: Ellipsis, + span: ( + 56, + 24, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 56, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 56, + 29, + ), + }, + Token { + kind: Colon, + span: ( + 56, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 56, + 32, + ), + }, + Token { + kind: LeftBrace, + span: ( + 56, + 36, + ), + }, + Token { + kind: Return, + span: ( + 56, + 38, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 56, + 45, + ), + }, + Token { + kind: DoubleColon, + span: ( + 56, + 48, + ), + }, + Token { + kind: From, + span: ( + 56, + 50, + ), + }, + Token { + kind: LeftParen, + span: ( + 56, + 54, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 56, + 55, + ), + }, + Token { + kind: RightParen, + span: ( + 56, + 57, + ), + }, + Token { + kind: SemiColon, + span: ( + 56, + 58, + ), + }, + Token { + kind: RightBrace, + span: ( + 56, + 60, + ), + }, + Token { + kind: SemiColon, + span: ( + 56, + 61, + ), + }, + Token { + kind: Function, + span: ( + 57, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 57, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 57, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 57, + 14, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 57, + 15, + ), + }, + Token { + kind: Ampersand, + span: ( + 57, + 18, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 57, + 19, + ), + }, + Token { + kind: Ellipsis, + span: ( + 57, + 23, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 57, + 26, + ), + }, + Token { + kind: RightParen, + span: ( + 57, + 28, + ), + }, + Token { + kind: Colon, + span: ( + 57, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 57, + 31, + ), + }, + Token { + kind: LeftBrace, + span: ( + 57, + 35, + ), + }, + Token { + kind: Return, + span: ( + 57, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 57, + 44, + ), + }, + Token { + kind: DoubleColon, + span: ( + 57, + 47, + ), + }, + Token { + kind: From, + span: ( + 57, + 49, + ), + }, + Token { + kind: LeftParen, + span: ( + 57, + 53, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 57, + 54, + ), + }, + Token { + kind: RightParen, + span: ( + 57, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 57, + 57, + ), + }, + Token { + kind: RightBrace, + span: ( + 57, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 57, + 60, + ), + }, + Token { + kind: Function, + span: ( + 58, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 58, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 58, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 58, + 14, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 58, + 15, + ), + }, + Token { + kind: Ampersand, + span: ( + 58, + 18, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 58, + 19, + ), + }, + Token { + kind: Ampersand, + span: ( + 58, + 23, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 58, + 24, + ), + }, + Token { + kind: RightParen, + span: ( + 58, + 26, + ), + }, + Token { + kind: Colon, + span: ( + 58, + 27, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 58, + 29, + ), + }, + Token { + kind: LeftBrace, + span: ( + 58, + 33, + ), + }, + Token { + kind: Return, + span: ( + 58, + 35, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 58, + 42, + ), + }, + Token { + kind: DoubleColon, + span: ( + 58, + 45, + ), + }, + Token { + kind: From, + span: ( + 58, + 47, + ), + }, + Token { + kind: LeftParen, + span: ( + 58, + 51, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 58, + 52, + ), + }, + Token { + kind: RightParen, + span: ( + 58, + 54, + ), + }, + Token { + kind: SemiColon, + span: ( + 58, + 55, + ), + }, + Token { + kind: RightBrace, + span: ( + 58, + 57, + ), + }, + Token { + kind: SemiColon, + span: ( + 58, + 58, + ), + }, + Token { + kind: Function, + span: ( + 59, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 59, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 59, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 59, + 14, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 59, + 15, + ), + }, + Token { + kind: Ampersand, + span: ( + 59, + 18, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 59, + 19, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 59, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 59, + 25, + ), + }, + Token { + kind: Colon, + span: ( + 59, + 26, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 59, + 28, + ), + }, + Token { + kind: LeftBrace, + span: ( + 59, + 32, + ), + }, + Token { + kind: Return, + span: ( + 59, + 34, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 59, + 41, + ), + }, + Token { + kind: DoubleColon, + span: ( + 59, + 44, + ), + }, + Token { + kind: From, + span: ( + 59, + 46, + ), + }, + Token { + kind: LeftParen, + span: ( + 59, + 50, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 59, + 51, + ), + }, + Token { + kind: RightParen, + span: ( + 59, + 53, + ), + }, + Token { + kind: SemiColon, + span: ( + 59, + 54, + ), + }, + Token { + kind: RightBrace, + span: ( + 59, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 59, + 57, + ), + }, + Token { + kind: Fn, + span: ( + 60, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 60, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 60, + 5, + ), + }, + Token { + kind: Pipe, + span: ( + 60, + 8, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 60, + 9, + ), + }, + Token { + kind: Pipe, + span: ( + 60, + 12, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 60, + 13, + ), + }, + Token { + kind: Ampersand, + span: ( + 60, + 17, + ), + }, + Token { + kind: Ellipsis, + span: ( + 60, + 18, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 60, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 60, + 23, + ), + }, + Token { + kind: Colon, + span: ( + 60, + 24, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 60, + 26, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 60, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 60, + 33, + ), + }, + Token { + kind: DoubleColon, + span: ( + 60, + 36, + ), + }, + Token { + kind: From, + span: ( + 60, + 38, + ), + }, + Token { + kind: LeftParen, + span: ( + 60, + 42, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 60, + 43, + ), + }, + Token { + kind: RightParen, + span: ( + 60, + 45, + ), + }, + Token { + kind: SemiColon, + span: ( + 60, + 46, + ), + }, + Token { + kind: Fn, + span: ( + 61, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 61, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 61, + 5, + ), + }, + Token { + kind: Pipe, + span: ( + 61, + 8, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 61, + 9, + ), + }, + Token { + kind: Pipe, + span: ( + 61, + 12, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 61, + 13, + ), + }, + Token { + kind: Ellipsis, + span: ( + 61, + 17, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 61, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 61, + 22, + ), + }, + Token { + kind: Colon, + span: ( + 61, + 23, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 61, + 25, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 61, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 61, + 32, + ), + }, + Token { + kind: DoubleColon, + span: ( + 61, + 35, + ), + }, + Token { + kind: From, + span: ( + 61, + 37, + ), + }, + Token { + kind: LeftParen, + span: ( + 61, + 41, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 61, + 42, + ), + }, + Token { + kind: RightParen, + span: ( + 61, + 44, + ), + }, + Token { + kind: SemiColon, + span: ( + 61, + 45, + ), + }, + Token { + kind: Fn, + span: ( + 62, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 62, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 62, + 5, + ), + }, + Token { + kind: Pipe, + span: ( + 62, + 8, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 62, + 9, + ), + }, + Token { + kind: Pipe, + span: ( + 62, + 12, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 62, + 13, + ), + }, + Token { + kind: Ampersand, + span: ( + 62, + 17, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 62, + 18, + ), + }, + Token { + kind: RightParen, + span: ( + 62, + 20, + ), + }, + Token { + kind: Colon, + span: ( + 62, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 62, + 23, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 62, + 27, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 62, + 30, + ), + }, + Token { + kind: DoubleColon, + span: ( + 62, + 33, + ), + }, + Token { + kind: From, + span: ( + 62, + 35, + ), + }, + Token { + kind: LeftParen, + span: ( + 62, + 39, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 62, + 40, + ), + }, + Token { + kind: RightParen, + span: ( + 62, + 42, + ), + }, + Token { + kind: SemiColon, + span: ( + 62, + 43, + ), + }, + Token { + kind: Fn, + span: ( + 63, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 63, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 63, + 5, + ), + }, + Token { + kind: Pipe, + span: ( + 63, + 8, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 63, + 9, + ), + }, + Token { + kind: Pipe, + span: ( + 63, + 12, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 63, + 13, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 63, + 17, + ), + }, + Token { + kind: RightParen, + span: ( + 63, + 19, + ), + }, + Token { + kind: Colon, + span: ( + 63, + 20, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 63, + 22, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 63, + 26, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 63, + 29, + ), + }, + Token { + kind: DoubleColon, + span: ( + 63, + 32, + ), + }, + Token { + kind: From, + span: ( + 63, + 34, + ), + }, + Token { + kind: LeftParen, + span: ( + 63, + 38, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 63, + 39, + ), + }, + Token { + kind: RightParen, + span: ( + 63, + 41, + ), + }, + Token { + kind: SemiColon, + span: ( + 63, + 42, + ), + }, + Token { + kind: Function, + span: ( + 64, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 64, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 64, + 11, + ), + }, + Token { + kind: Pipe, + span: ( + 64, + 14, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 64, + 15, + ), + }, + Token { + kind: Pipe, + span: ( + 64, + 18, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 64, + 19, + ), + }, + Token { + kind: Ampersand, + span: ( + 64, + 23, + ), + }, + Token { + kind: Ellipsis, + span: ( + 64, + 24, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 64, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 64, + 29, + ), + }, + Token { + kind: Colon, + span: ( + 64, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 64, + 32, + ), + }, + Token { + kind: LeftBrace, + span: ( + 64, + 36, + ), + }, + Token { + kind: Return, + span: ( + 64, + 38, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 64, + 45, + ), + }, + Token { + kind: DoubleColon, + span: ( + 64, + 48, + ), + }, + Token { + kind: From, + span: ( + 64, + 50, + ), + }, + Token { + kind: LeftParen, + span: ( + 64, + 54, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 64, + 55, + ), + }, + Token { + kind: RightParen, + span: ( + 64, + 57, + ), + }, + Token { + kind: SemiColon, + span: ( + 64, + 58, + ), + }, + Token { + kind: RightBrace, + span: ( + 64, + 60, + ), + }, + Token { + kind: SemiColon, + span: ( + 64, + 61, + ), + }, + Token { + kind: Function, + span: ( + 65, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 65, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 65, + 11, + ), + }, + Token { + kind: Pipe, + span: ( + 65, + 14, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 65, + 15, + ), + }, + Token { + kind: Pipe, + span: ( + 65, + 18, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 65, + 19, + ), + }, + Token { + kind: Ellipsis, + span: ( + 65, + 23, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 65, + 26, + ), + }, + Token { + kind: RightParen, + span: ( + 65, + 28, + ), + }, + Token { + kind: Colon, + span: ( + 65, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 65, + 31, + ), + }, + Token { + kind: LeftBrace, + span: ( + 65, + 35, + ), + }, + Token { + kind: Return, + span: ( + 65, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 65, + 44, + ), + }, + Token { + kind: DoubleColon, + span: ( + 65, + 47, + ), + }, + Token { + kind: From, + span: ( + 65, + 49, + ), + }, + Token { + kind: LeftParen, + span: ( + 65, + 53, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 65, + 54, + ), + }, + Token { + kind: RightParen, + span: ( + 65, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 65, + 57, + ), + }, + Token { + kind: RightBrace, + span: ( + 65, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 65, + 60, + ), + }, + Token { + kind: Function, + span: ( + 66, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 66, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 66, + 11, + ), + }, + Token { + kind: Pipe, + span: ( + 66, + 14, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 66, + 15, + ), + }, + Token { + kind: Pipe, + span: ( + 66, + 18, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 66, + 19, + ), + }, + Token { + kind: Ampersand, + span: ( + 66, + 23, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 66, + 24, + ), + }, + Token { + kind: RightParen, + span: ( + 66, + 26, + ), + }, + Token { + kind: Colon, + span: ( + 66, + 27, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 66, + 29, + ), + }, + Token { + kind: LeftBrace, + span: ( + 66, + 33, + ), + }, + Token { + kind: Return, + span: ( + 66, + 35, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 66, + 42, + ), + }, + Token { + kind: DoubleColon, + span: ( + 66, + 45, + ), + }, + Token { + kind: From, + span: ( + 66, + 47, + ), + }, + Token { + kind: LeftParen, + span: ( + 66, + 51, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 66, + 52, + ), + }, + Token { + kind: RightParen, + span: ( + 66, + 54, + ), + }, + Token { + kind: SemiColon, + span: ( + 66, + 55, + ), + }, + Token { + kind: RightBrace, + span: ( + 66, + 57, + ), + }, + Token { + kind: SemiColon, + span: ( + 66, + 58, + ), + }, + Token { + kind: Function, + span: ( + 67, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 67, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 67, + 11, + ), + }, + Token { + kind: Pipe, + span: ( + 67, + 14, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 67, + 15, + ), + }, + Token { + kind: Pipe, + span: ( + 67, + 18, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 67, + 19, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 67, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 67, + 25, + ), + }, + Token { + kind: Colon, + span: ( + 67, + 26, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 67, + 28, + ), + }, + Token { + kind: LeftBrace, + span: ( + 67, + 32, + ), + }, + Token { + kind: Return, + span: ( + 67, + 34, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 67, + 41, + ), + }, + Token { + kind: DoubleColon, + span: ( + 67, + 44, + ), + }, + Token { + kind: From, + span: ( + 67, + 46, + ), + }, + Token { + kind: LeftParen, + span: ( + 67, + 50, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 67, + 51, + ), + }, + Token { + kind: RightParen, + span: ( + 67, + 53, + ), + }, + Token { + kind: SemiColon, + span: ( + 67, + 54, + ), + }, + Token { + kind: RightBrace, + span: ( + 67, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 67, + 57, + ), + }, + Token { + kind: Fn, + span: ( + 68, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 68, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 68, + 5, + ), + }, + Token { + kind: Pipe, + span: ( + 68, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 68, + 9, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 68, + 10, + ), + }, + Token { + kind: Ampersand, + span: ( + 68, + 13, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 68, + 14, + ), + }, + Token { + kind: RightParen, + span: ( + 68, + 17, + ), + }, + Token { + kind: Ampersand, + span: ( + 68, + 19, + ), + }, + Token { + kind: Ellipsis, + span: ( + 68, + 20, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 68, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 68, + 25, + ), + }, + Token { + kind: Colon, + span: ( + 68, + 26, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 68, + 28, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 68, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 68, + 35, + ), + }, + Token { + kind: DoubleColon, + span: ( + 68, + 38, + ), + }, + Token { + kind: From, + span: ( + 68, + 40, + ), + }, + Token { + kind: LeftParen, + span: ( + 68, + 44, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 68, + 45, + ), + }, + Token { + kind: RightParen, + span: ( + 68, + 47, + ), + }, + Token { + kind: SemiColon, + span: ( + 68, + 48, + ), + }, + Token { + kind: Fn, + span: ( + 69, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 69, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 69, + 5, + ), + }, + Token { + kind: Pipe, + span: ( + 69, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 69, + 9, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 69, + 10, + ), + }, + Token { + kind: Ampersand, + span: ( + 69, + 13, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 69, + 14, + ), + }, + Token { + kind: RightParen, + span: ( + 69, + 17, + ), + }, + Token { + kind: Ellipsis, + span: ( + 69, + 19, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 69, + 22, + ), + }, + Token { + kind: RightParen, + span: ( + 69, + 24, + ), + }, + Token { + kind: Colon, + span: ( + 69, + 25, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 69, + 27, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 69, + 31, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 69, + 34, + ), + }, + Token { + kind: DoubleColon, + span: ( + 69, + 37, + ), + }, + Token { + kind: From, + span: ( + 69, + 39, + ), + }, + Token { + kind: LeftParen, + span: ( + 69, + 43, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 69, + 44, + ), + }, + Token { + kind: RightParen, + span: ( + 69, + 46, + ), + }, + Token { + kind: SemiColon, + span: ( + 69, + 47, + ), + }, + Token { + kind: Fn, + span: ( + 70, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 70, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 70, + 5, + ), + }, + Token { + kind: Pipe, + span: ( + 70, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 70, + 9, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 70, + 10, + ), + }, + Token { + kind: Ampersand, + span: ( + 70, + 13, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 70, + 14, + ), + }, + Token { + kind: RightParen, + span: ( + 70, + 17, + ), + }, + Token { + kind: Ampersand, + span: ( + 70, + 19, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 70, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 70, + 22, + ), + }, + Token { + kind: Colon, + span: ( + 70, + 23, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 70, + 25, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 70, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 70, + 32, + ), + }, + Token { + kind: DoubleColon, + span: ( + 70, + 35, + ), + }, + Token { + kind: From, + span: ( + 70, + 37, + ), + }, + Token { + kind: LeftParen, + span: ( + 70, + 41, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 70, + 42, + ), + }, + Token { + kind: RightParen, + span: ( + 70, + 44, + ), + }, + Token { + kind: SemiColon, + span: ( + 70, + 45, + ), + }, + Token { + kind: Fn, + span: ( + 71, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 71, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 71, + 5, + ), + }, + Token { + kind: Pipe, + span: ( + 71, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 71, + 9, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 71, + 10, + ), + }, + Token { + kind: Ampersand, + span: ( + 71, + 13, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 71, + 14, + ), + }, + Token { + kind: RightParen, + span: ( + 71, + 17, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 71, + 19, + ), + }, + Token { + kind: RightParen, + span: ( + 71, + 21, + ), + }, + Token { + kind: Colon, + span: ( + 71, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 71, + 24, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 71, + 28, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 71, + 31, + ), + }, + Token { + kind: DoubleColon, + span: ( + 71, + 34, + ), + }, + Token { + kind: From, + span: ( + 71, + 36, + ), + }, + Token { + kind: LeftParen, + span: ( + 71, + 40, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 71, + 41, + ), + }, + Token { + kind: RightParen, + span: ( + 71, + 43, + ), + }, + Token { + kind: SemiColon, + span: ( + 71, + 44, + ), + }, + Token { + kind: Function, + span: ( + 72, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 72, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 72, + 11, + ), + }, + Token { + kind: Pipe, + span: ( + 72, + 14, + ), + }, + Token { + kind: LeftParen, + span: ( + 72, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 72, + 16, + ), + }, + Token { + kind: Ampersand, + span: ( + 72, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 72, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 72, + 23, + ), + }, + Token { + kind: Ampersand, + span: ( + 72, + 25, + ), + }, + Token { + kind: Ellipsis, + span: ( + 72, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 72, + 29, + ), + }, + Token { + kind: RightParen, + span: ( + 72, + 31, + ), + }, + Token { + kind: Colon, + span: ( + 72, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 72, + 34, + ), + }, + Token { + kind: LeftBrace, + span: ( + 72, + 38, + ), + }, + Token { + kind: Return, + span: ( + 72, + 40, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 72, + 47, + ), + }, + Token { + kind: DoubleColon, + span: ( + 72, + 50, + ), + }, + Token { + kind: From, + span: ( + 72, + 52, + ), + }, + Token { + kind: LeftParen, + span: ( + 72, + 56, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 72, + 57, + ), + }, + Token { + kind: RightParen, + span: ( + 72, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 72, + 60, + ), + }, + Token { + kind: RightBrace, + span: ( + 72, + 62, + ), + }, + Token { + kind: SemiColon, + span: ( + 72, + 63, + ), + }, + Token { + kind: Function, + span: ( + 73, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 73, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 73, + 11, + ), + }, + Token { + kind: Pipe, + span: ( + 73, + 14, + ), + }, + Token { + kind: LeftParen, + span: ( + 73, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 73, + 16, + ), + }, + Token { + kind: Ampersand, + span: ( + 73, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 73, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 73, + 23, + ), + }, + Token { + kind: Ellipsis, + span: ( + 73, + 25, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 73, + 28, + ), + }, + Token { + kind: RightParen, + span: ( + 73, + 30, + ), + }, + Token { + kind: Colon, + span: ( + 73, + 31, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 73, + 33, + ), + }, + Token { + kind: LeftBrace, + span: ( + 73, + 37, + ), + }, + Token { + kind: Return, + span: ( + 73, + 39, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 73, + 46, + ), + }, + Token { + kind: DoubleColon, + span: ( + 73, + 49, + ), + }, + Token { + kind: From, + span: ( + 73, + 51, + ), + }, + Token { + kind: LeftParen, + span: ( + 73, + 55, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 73, + 56, + ), + }, + Token { + kind: RightParen, + span: ( + 73, + 58, + ), + }, + Token { + kind: SemiColon, + span: ( + 73, + 59, + ), + }, + Token { + kind: RightBrace, + span: ( + 73, + 61, + ), + }, + Token { + kind: SemiColon, + span: ( + 73, + 62, + ), + }, + Token { + kind: Function, + span: ( + 74, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 74, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 74, + 11, + ), + }, + Token { + kind: Pipe, + span: ( + 74, + 14, + ), + }, + Token { + kind: LeftParen, + span: ( + 74, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 74, + 16, + ), + }, + Token { + kind: Ampersand, + span: ( + 74, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 74, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 74, + 23, + ), + }, + Token { + kind: Ampersand, + span: ( + 74, + 25, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 74, + 26, + ), + }, + Token { + kind: RightParen, + span: ( + 74, + 28, + ), + }, + Token { + kind: Colon, + span: ( + 74, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 74, + 31, + ), + }, + Token { + kind: LeftBrace, + span: ( + 74, + 35, + ), + }, + Token { + kind: Return, + span: ( + 74, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 74, + 44, + ), + }, + Token { + kind: DoubleColon, + span: ( + 74, + 47, + ), + }, + Token { + kind: From, + span: ( + 74, + 49, + ), + }, + Token { + kind: LeftParen, + span: ( + 74, + 53, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 74, + 54, + ), + }, + Token { + kind: RightParen, + span: ( + 74, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 74, + 57, + ), + }, + Token { + kind: RightBrace, + span: ( + 74, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 74, + 60, + ), + }, + Token { + kind: Function, + span: ( + 75, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 75, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 75, + 11, + ), + }, + Token { + kind: Pipe, + span: ( + 75, + 14, + ), + }, + Token { + kind: LeftParen, + span: ( + 75, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 75, + 16, + ), + }, + Token { + kind: Ampersand, + span: ( + 75, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 75, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 75, + 23, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 75, + 25, + ), + }, + Token { + kind: RightParen, + span: ( + 75, + 27, + ), + }, + Token { + kind: Colon, + span: ( + 75, + 28, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 75, + 30, + ), + }, + Token { + kind: LeftBrace, + span: ( + 75, + 34, + ), + }, + Token { + kind: Return, + span: ( + 75, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 75, + 43, + ), + }, + Token { + kind: DoubleColon, + span: ( + 75, + 46, + ), + }, + Token { + kind: From, + span: ( + 75, + 48, + ), + }, + Token { + kind: LeftParen, + span: ( + 75, + 52, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 75, + 53, + ), + }, + Token { + kind: RightParen, + span: ( + 75, + 55, + ), + }, + Token { + kind: SemiColon, + span: ( + 75, + 56, + ), + }, + Token { + kind: RightBrace, + span: ( + 75, + 58, + ), + }, + Token { + kind: SemiColon, + span: ( + 75, + 59, + ), + }, + Token { + kind: Fn, + span: ( + 76, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 76, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 76, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 76, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 76, + 9, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 76, + 10, + ), + }, + Token { + kind: Pipe, + span: ( + 76, + 13, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 76, + 14, + ), + }, + Token { + kind: RightParen, + span: ( + 76, + 17, + ), + }, + Token { + kind: Ampersand, + span: ( + 76, + 19, + ), + }, + Token { + kind: Ellipsis, + span: ( + 76, + 20, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 76, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 76, + 25, + ), + }, + Token { + kind: Colon, + span: ( + 76, + 26, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 76, + 28, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 76, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 76, + 35, + ), + }, + Token { + kind: DoubleColon, + span: ( + 76, + 38, + ), + }, + Token { + kind: From, + span: ( + 76, + 40, + ), + }, + Token { + kind: LeftParen, + span: ( + 76, + 44, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 76, + 45, + ), + }, + Token { + kind: RightParen, + span: ( + 76, + 47, + ), + }, + Token { + kind: SemiColon, + span: ( + 76, + 48, + ), + }, + Token { + kind: Fn, + span: ( + 77, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 77, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 77, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 77, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 77, + 9, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 77, + 10, + ), + }, + Token { + kind: Pipe, + span: ( + 77, + 13, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 77, + 14, + ), + }, + Token { + kind: RightParen, + span: ( + 77, + 17, + ), + }, + Token { + kind: Ellipsis, + span: ( + 77, + 19, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 77, + 22, + ), + }, + Token { + kind: RightParen, + span: ( + 77, + 24, + ), + }, + Token { + kind: Colon, + span: ( + 77, + 25, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 77, + 27, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 77, + 31, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 77, + 34, + ), + }, + Token { + kind: DoubleColon, + span: ( + 77, + 37, + ), + }, + Token { + kind: From, + span: ( + 77, + 39, + ), + }, + Token { + kind: LeftParen, + span: ( + 77, + 43, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 77, + 44, + ), + }, + Token { + kind: RightParen, + span: ( + 77, + 46, + ), + }, + Token { + kind: SemiColon, + span: ( + 77, + 47, + ), + }, + Token { + kind: Fn, + span: ( + 78, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 78, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 78, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 78, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 78, + 9, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 78, + 10, + ), + }, + Token { + kind: Pipe, + span: ( + 78, + 13, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 78, + 14, + ), + }, + Token { + kind: RightParen, + span: ( + 78, + 17, + ), + }, + Token { + kind: Ampersand, + span: ( + 78, + 19, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 78, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 78, + 22, + ), + }, + Token { + kind: Colon, + span: ( + 78, + 23, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 78, + 25, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 78, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 78, + 32, + ), + }, + Token { + kind: DoubleColon, + span: ( + 78, + 35, + ), + }, + Token { + kind: From, + span: ( + 78, + 37, + ), + }, + Token { + kind: LeftParen, + span: ( + 78, + 41, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 78, + 42, + ), + }, + Token { + kind: RightParen, + span: ( + 78, + 44, + ), + }, + Token { + kind: SemiColon, + span: ( + 78, + 45, + ), + }, + Token { + kind: Fn, + span: ( + 79, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 79, + 4, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 79, + 5, + ), + }, + Token { + kind: Ampersand, + span: ( + 79, + 8, + ), + }, + Token { + kind: LeftParen, + span: ( + 79, + 9, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 79, + 10, + ), + }, + Token { + kind: Pipe, + span: ( + 79, + 13, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 79, + 14, + ), + }, + Token { + kind: RightParen, + span: ( + 79, + 17, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 79, + 19, + ), + }, + Token { + kind: RightParen, + span: ( + 79, + 21, + ), + }, + Token { + kind: Colon, + span: ( + 79, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 79, + 24, + ), + }, + Token { + kind: DoubleArrow, + span: ( + 79, + 28, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 79, + 31, + ), + }, + Token { + kind: DoubleColon, + span: ( + 79, + 34, + ), + }, + Token { + kind: From, + span: ( + 79, + 36, + ), + }, + Token { + kind: LeftParen, + span: ( + 79, + 40, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 79, + 41, + ), + }, + Token { + kind: RightParen, + span: ( + 79, + 43, + ), + }, + Token { + kind: SemiColon, + span: ( + 79, + 44, + ), + }, + Token { + kind: Function, + span: ( + 80, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 80, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 80, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 80, + 14, + ), + }, + Token { + kind: LeftParen, + span: ( + 80, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 80, + 16, + ), + }, + Token { + kind: Pipe, + span: ( + 80, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 80, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 80, + 23, + ), + }, + Token { + kind: Ampersand, + span: ( + 80, + 25, + ), + }, + Token { + kind: Ellipsis, + span: ( + 80, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 80, + 29, + ), + }, + Token { + kind: RightParen, + span: ( + 80, + 31, + ), + }, + Token { + kind: Colon, + span: ( + 80, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 80, + 34, + ), + }, + Token { + kind: LeftBrace, + span: ( + 80, + 38, + ), + }, + Token { + kind: Return, + span: ( + 80, + 40, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 80, + 47, + ), + }, + Token { + kind: DoubleColon, + span: ( + 80, + 50, + ), + }, + Token { + kind: From, + span: ( + 80, + 52, + ), + }, + Token { + kind: LeftParen, + span: ( + 80, + 56, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 80, + 57, + ), + }, + Token { + kind: RightParen, + span: ( + 80, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 80, + 60, + ), + }, + Token { + kind: RightBrace, + span: ( + 80, + 62, + ), + }, + Token { + kind: SemiColon, + span: ( + 80, + 63, + ), + }, + Token { + kind: Function, + span: ( + 81, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 81, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 81, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 81, + 14, + ), + }, + Token { + kind: LeftParen, + span: ( + 81, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 81, + 16, + ), + }, + Token { + kind: Pipe, + span: ( + 81, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 81, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 81, + 23, + ), + }, + Token { + kind: Ellipsis, + span: ( + 81, + 25, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 81, + 28, + ), + }, + Token { + kind: RightParen, + span: ( + 81, + 30, + ), + }, + Token { + kind: Colon, + span: ( + 81, + 31, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 81, + 33, + ), + }, + Token { + kind: LeftBrace, + span: ( + 81, + 37, + ), + }, + Token { + kind: Return, + span: ( + 81, + 39, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 81, + 46, + ), + }, + Token { + kind: DoubleColon, + span: ( + 81, + 49, + ), + }, + Token { + kind: From, + span: ( + 81, + 51, + ), + }, + Token { + kind: LeftParen, + span: ( + 81, + 55, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 81, + 56, + ), + }, + Token { + kind: RightParen, + span: ( + 81, + 58, + ), + }, + Token { + kind: SemiColon, + span: ( + 81, + 59, + ), + }, + Token { + kind: RightBrace, + span: ( + 81, + 61, + ), + }, + Token { + kind: SemiColon, + span: ( + 81, + 62, + ), + }, + Token { + kind: Function, + span: ( + 82, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 82, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 82, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 82, + 14, + ), + }, + Token { + kind: LeftParen, + span: ( + 82, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 82, + 16, + ), + }, + Token { + kind: Pipe, + span: ( + 82, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 82, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 82, + 23, + ), + }, + Token { + kind: Ampersand, + span: ( + 82, + 25, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 82, + 26, + ), + }, + Token { + kind: RightParen, + span: ( + 82, + 28, + ), + }, + Token { + kind: Colon, + span: ( + 82, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 82, + 31, + ), + }, + Token { + kind: LeftBrace, + span: ( + 82, + 35, + ), + }, + Token { + kind: Return, + span: ( + 82, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 82, + 44, + ), + }, + Token { + kind: DoubleColon, + span: ( + 82, + 47, + ), + }, + Token { + kind: From, + span: ( + 82, + 49, + ), + }, + Token { + kind: LeftParen, + span: ( + 82, + 53, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 82, + 54, + ), + }, + Token { + kind: RightParen, + span: ( + 82, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 82, + 57, + ), + }, + Token { + kind: RightBrace, + span: ( + 82, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 82, + 60, + ), + }, + Token { + kind: Function, + span: ( + 83, + 1, + ), + }, + Token { + kind: LeftParen, + span: ( + 83, + 10, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 83, + 11, + ), + }, + Token { + kind: Ampersand, + span: ( + 83, + 14, + ), + }, + Token { + kind: LeftParen, + span: ( + 83, + 15, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 83, + 16, + ), + }, + Token { + kind: Pipe, + span: ( + 83, + 19, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 83, + 20, + ), + }, + Token { + kind: RightParen, + span: ( + 83, + 23, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 83, + 25, + ), + }, + Token { + kind: RightParen, + span: ( + 83, + 27, + ), + }, + Token { + kind: Colon, + span: ( + 83, + 28, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 83, + 30, + ), + }, + Token { + kind: LeftBrace, + span: ( + 83, + 34, + ), + }, + Token { + kind: Return, + span: ( + 83, + 36, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 83, + 43, + ), + }, + Token { + kind: DoubleColon, + span: ( + 83, + 46, + ), + }, + Token { + kind: From, + span: ( + 83, + 48, + ), + }, + Token { + kind: LeftParen, + span: ( + 83, + 52, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 83, + 53, + ), + }, + Token { + kind: RightParen, + span: ( + 83, + 55, + ), + }, + Token { + kind: SemiColon, + span: ( + 83, + 56, + ), + }, + Token { + kind: RightBrace, + span: ( + 83, + 58, + ), + }, + Token { + kind: SemiColon, + span: ( + 83, + 59, + ), + }, + Token { + kind: Function, + span: ( + 85, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 85, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 85, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 85, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 85, + 18, + ), + }, + Token { + kind: Ellipsis, + span: ( + 85, + 19, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 85, + 22, + ), + }, + Token { + kind: RightParen, + span: ( + 85, + 24, + ), + }, + Token { + kind: Colon, + span: ( + 85, + 25, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 85, + 27, + ), + }, + Token { + kind: LeftBrace, + span: ( + 85, + 31, + ), + }, + Token { + kind: Return, + span: ( + 85, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 85, + 40, + ), + }, + Token { + kind: DoubleColon, + span: ( + 85, + 43, + ), + }, + Token { + kind: From, + span: ( + 85, + 45, + ), + }, + Token { + kind: LeftParen, + span: ( + 85, + 49, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 85, + 50, + ), + }, + Token { + kind: RightParen, + span: ( + 85, + 52, + ), + }, + Token { + kind: SemiColon, + span: ( + 85, + 53, + ), + }, + Token { + kind: RightBrace, + span: ( + 85, + 55, + ), + }, + Token { + kind: Function, + span: ( + 86, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 86, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 86, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 86, + 14, + ), + }, + Token { + kind: Ellipsis, + span: ( + 86, + 18, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 86, + 21, + ), + }, + Token { + kind: RightParen, + span: ( + 86, + 23, + ), + }, + Token { + kind: Colon, + span: ( + 86, + 24, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 86, + 26, + ), + }, + Token { + kind: LeftBrace, + span: ( + 86, + 30, + ), + }, + Token { + kind: Return, + span: ( + 86, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 86, + 39, + ), + }, + Token { + kind: DoubleColon, + span: ( + 86, + 42, + ), + }, + Token { + kind: From, + span: ( + 86, + 44, + ), + }, + Token { + kind: LeftParen, + span: ( + 86, + 48, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 86, + 49, + ), + }, + Token { + kind: RightParen, + span: ( + 86, + 51, + ), + }, + Token { + kind: SemiColon, + span: ( + 86, + 52, + ), + }, + Token { + kind: RightBrace, + span: ( + 86, + 54, + ), + }, + Token { + kind: Function, + span: ( + 87, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 87, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 87, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 87, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 87, + 18, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 87, + 19, + ), + }, + Token { + kind: RightParen, + span: ( + 87, + 21, + ), + }, + Token { + kind: Colon, + span: ( + 87, + 22, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 87, + 24, + ), + }, + Token { + kind: LeftBrace, + span: ( + 87, + 28, + ), + }, + Token { + kind: Return, + span: ( + 87, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 87, + 37, + ), + }, + Token { + kind: DoubleColon, + span: ( + 87, + 40, + ), + }, + Token { + kind: From, + span: ( + 87, + 42, + ), + }, + Token { + kind: LeftParen, + span: ( + 87, + 46, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 87, + 47, + ), + }, + Token { + kind: RightParen, + span: ( + 87, + 49, + ), + }, + Token { + kind: SemiColon, + span: ( + 87, + 50, + ), + }, + Token { + kind: RightBrace, + span: ( + 87, + 52, + ), + }, + Token { + kind: Function, + span: ( + 88, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 88, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 88, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 88, + 14, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 88, + 18, + ), + }, + Token { + kind: RightParen, + span: ( + 88, + 20, + ), + }, + Token { + kind: Colon, + span: ( + 88, + 21, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 88, + 23, + ), + }, + Token { + kind: LeftBrace, + span: ( + 88, + 27, + ), + }, + Token { + kind: Return, + span: ( + 88, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 88, + 36, + ), + }, + Token { + kind: DoubleColon, + span: ( + 88, + 39, + ), + }, + Token { + kind: From, + span: ( + 88, + 41, + ), + }, + Token { + kind: LeftParen, + span: ( + 88, + 45, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 88, + 46, + ), + }, + Token { + kind: RightParen, + span: ( + 88, + 48, + ), + }, + Token { + kind: SemiColon, + span: ( + 88, + 49, + ), + }, + Token { + kind: RightBrace, + span: ( + 88, + 51, + ), + }, + Token { + kind: Function, + span: ( + 89, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 89, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 89, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 89, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 89, + 17, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 89, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 89, + 21, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 89, + 22, + ), + }, + Token { + kind: Ampersand, + span: ( + 89, + 26, + ), + }, + Token { + kind: Ellipsis, + span: ( + 89, + 27, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 89, + 30, + ), + }, + Token { + kind: RightParen, + span: ( + 89, + 32, + ), + }, + Token { + kind: Colon, + span: ( + 89, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 89, + 35, + ), + }, + Token { + kind: LeftBrace, + span: ( + 89, + 39, + ), + }, + Token { + kind: Return, + span: ( + 89, + 41, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 89, + 48, + ), + }, + Token { + kind: DoubleColon, + span: ( + 89, + 51, + ), + }, + Token { + kind: From, + span: ( + 89, + 53, + ), + }, + Token { + kind: LeftParen, + span: ( + 89, + 57, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 89, + 58, + ), + }, + Token { + kind: RightParen, + span: ( + 89, + 60, + ), + }, + Token { + kind: SemiColon, + span: ( + 89, + 61, + ), + }, + Token { + kind: RightBrace, + span: ( + 89, + 63, + ), + }, + Token { + kind: Function, + span: ( + 90, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 90, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 90, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 90, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 90, + 17, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 90, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 90, + 21, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 90, + 22, + ), + }, + Token { + kind: Ellipsis, + span: ( + 90, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 90, + 29, + ), + }, + Token { + kind: RightParen, + span: ( + 90, + 31, + ), + }, + Token { + kind: Colon, + span: ( + 90, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 90, + 34, + ), + }, + Token { + kind: LeftBrace, + span: ( + 90, + 38, + ), + }, + Token { + kind: Return, + span: ( + 90, + 40, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 90, + 47, + ), + }, + Token { + kind: DoubleColon, + span: ( + 90, + 50, + ), + }, + Token { + kind: From, + span: ( + 90, + 52, + ), + }, + Token { + kind: LeftParen, + span: ( + 90, + 56, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 90, + 57, + ), + }, + Token { + kind: RightParen, + span: ( + 90, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 90, + 60, + ), + }, + Token { + kind: RightBrace, + span: ( + 90, + 62, + ), + }, + Token { + kind: Function, + span: ( + 91, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 91, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 91, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 91, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 91, + 17, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 91, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 91, + 21, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 91, + 22, + ), + }, + Token { + kind: Ampersand, + span: ( + 91, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 91, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 91, + 29, + ), + }, + Token { + kind: Colon, + span: ( + 91, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 91, + 32, + ), + }, + Token { + kind: LeftBrace, + span: ( + 91, + 36, + ), + }, + Token { + kind: Return, + span: ( + 91, + 38, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 91, + 45, + ), + }, + Token { + kind: DoubleColon, + span: ( + 91, + 48, + ), + }, + Token { + kind: From, + span: ( + 91, + 50, + ), + }, + Token { + kind: LeftParen, + span: ( + 91, + 54, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 91, + 55, + ), + }, + Token { + kind: RightParen, + span: ( + 91, + 57, + ), + }, + Token { + kind: SemiColon, + span: ( + 91, + 58, + ), + }, + Token { + kind: RightBrace, + span: ( + 91, + 60, + ), + }, + Token { + kind: Function, + span: ( + 92, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 92, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 92, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 92, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 92, + 17, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 92, + 18, + ), + }, + Token { + kind: Ampersand, + span: ( + 92, + 21, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 92, + 22, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 92, + 26, + ), + }, + Token { + kind: RightParen, + span: ( + 92, + 28, + ), + }, + Token { + kind: Colon, + span: ( + 92, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 92, + 31, + ), + }, + Token { + kind: LeftBrace, + span: ( + 92, + 35, + ), + }, + Token { + kind: Return, + span: ( + 92, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 92, + 44, + ), + }, + Token { + kind: DoubleColon, + span: ( + 92, + 47, + ), + }, + Token { + kind: From, + span: ( + 92, + 49, + ), + }, + Token { + kind: LeftParen, + span: ( + 92, + 53, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 92, + 54, + ), + }, + Token { + kind: RightParen, + span: ( + 92, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 92, + 57, + ), + }, + Token { + kind: RightBrace, + span: ( + 92, + 59, + ), + }, + Token { + kind: Function, + span: ( + 93, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 93, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 93, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 93, + 14, + ), + }, + Token { + kind: Pipe, + span: ( + 93, + 17, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 93, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 93, + 21, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 93, + 22, + ), + }, + Token { + kind: Ampersand, + span: ( + 93, + 26, + ), + }, + Token { + kind: Ellipsis, + span: ( + 93, + 27, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 93, + 30, + ), + }, + Token { + kind: RightParen, + span: ( + 93, + 32, + ), + }, + Token { + kind: Colon, + span: ( + 93, + 33, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 93, + 35, + ), + }, + Token { + kind: LeftBrace, + span: ( + 93, + 39, + ), + }, + Token { + kind: Return, + span: ( + 93, + 41, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 93, + 48, + ), + }, + Token { + kind: DoubleColon, + span: ( + 93, + 51, + ), + }, + Token { + kind: From, + span: ( + 93, + 53, + ), + }, + Token { + kind: LeftParen, + span: ( + 93, + 57, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 93, + 58, + ), + }, + Token { + kind: RightParen, + span: ( + 93, + 60, + ), + }, + Token { + kind: SemiColon, + span: ( + 93, + 61, + ), + }, + Token { + kind: RightBrace, + span: ( + 93, + 63, + ), + }, + Token { + kind: Function, + span: ( + 94, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 94, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 94, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 94, + 14, + ), + }, + Token { + kind: Pipe, + span: ( + 94, + 17, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 94, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 94, + 21, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 94, + 22, + ), + }, + Token { + kind: Ellipsis, + span: ( + 94, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 94, + 29, + ), + }, + Token { + kind: RightParen, + span: ( + 94, + 31, + ), + }, + Token { + kind: Colon, + span: ( + 94, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 94, + 34, + ), + }, + Token { + kind: LeftBrace, + span: ( + 94, + 38, + ), + }, + Token { + kind: Return, + span: ( + 94, + 40, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 94, + 47, + ), + }, + Token { + kind: DoubleColon, + span: ( + 94, + 50, + ), + }, + Token { + kind: From, + span: ( + 94, + 52, + ), + }, + Token { + kind: LeftParen, + span: ( + 94, + 56, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 94, + 57, + ), + }, + Token { + kind: RightParen, + span: ( + 94, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 94, + 60, + ), + }, + Token { + kind: RightBrace, + span: ( + 94, + 62, + ), + }, + Token { + kind: Function, + span: ( + 95, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 95, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 95, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 95, + 14, + ), + }, + Token { + kind: Pipe, + span: ( + 95, + 17, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 95, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 95, + 21, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 95, + 22, + ), + }, + Token { + kind: Ampersand, + span: ( + 95, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 95, + 27, + ), + }, + Token { + kind: RightParen, + span: ( + 95, + 29, + ), + }, + Token { + kind: Colon, + span: ( + 95, + 30, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 95, + 32, + ), + }, + Token { + kind: LeftBrace, + span: ( + 95, + 36, + ), + }, + Token { + kind: Return, + span: ( + 95, + 38, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 95, + 45, + ), + }, + Token { + kind: DoubleColon, + span: ( + 95, + 48, + ), + }, + Token { + kind: From, + span: ( + 95, + 50, + ), + }, + Token { + kind: LeftParen, + span: ( + 95, + 54, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 95, + 55, + ), + }, + Token { + kind: RightParen, + span: ( + 95, + 57, + ), + }, + Token { + kind: SemiColon, + span: ( + 95, + 58, + ), + }, + Token { + kind: RightBrace, + span: ( + 95, + 60, + ), + }, + Token { + kind: Function, + span: ( + 96, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 96, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 96, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 96, + 14, + ), + }, + Token { + kind: Pipe, + span: ( + 96, + 17, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 96, + 18, + ), + }, + Token { + kind: Pipe, + span: ( + 96, + 21, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 96, + 22, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 96, + 26, + ), + }, + Token { + kind: RightParen, + span: ( + 96, + 28, + ), + }, + Token { + kind: Colon, + span: ( + 96, + 29, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 96, + 31, + ), + }, + Token { + kind: LeftBrace, + span: ( + 96, + 35, + ), + }, + Token { + kind: Return, + span: ( + 96, + 37, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 96, + 44, + ), + }, + Token { + kind: DoubleColon, + span: ( + 96, + 47, + ), + }, + Token { + kind: From, + span: ( + 96, + 49, + ), + }, + Token { + kind: LeftParen, + span: ( + 96, + 53, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 96, + 54, + ), + }, + Token { + kind: RightParen, + span: ( + 96, + 56, + ), + }, + Token { + kind: SemiColon, + span: ( + 96, + 57, + ), + }, + Token { + kind: RightBrace, + span: ( + 96, + 59, + ), + }, + Token { + kind: Function, + span: ( + 97, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 97, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 97, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 97, + 14, + ), + }, + Token { + kind: Pipe, + span: ( + 97, + 17, + ), + }, + Token { + kind: LeftParen, + span: ( + 97, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 97, + 19, + ), + }, + Token { + kind: Ampersand, + span: ( + 97, + 22, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 97, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 97, + 26, + ), + }, + Token { + kind: Ampersand, + span: ( + 97, + 28, + ), + }, + Token { + kind: Ellipsis, + span: ( + 97, + 29, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 97, + 32, + ), + }, + Token { + kind: RightParen, + span: ( + 97, + 34, + ), + }, + Token { + kind: Colon, + span: ( + 97, + 35, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 97, + 37, + ), + }, + Token { + kind: LeftBrace, + span: ( + 97, + 41, + ), + }, + Token { + kind: Return, + span: ( + 97, + 43, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 97, + 50, + ), + }, + Token { + kind: DoubleColon, + span: ( + 97, + 53, + ), + }, + Token { + kind: From, + span: ( + 97, + 55, + ), + }, + Token { + kind: LeftParen, + span: ( + 97, + 59, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 97, + 60, + ), + }, + Token { + kind: RightParen, + span: ( + 97, + 62, + ), + }, + Token { + kind: SemiColon, + span: ( + 97, + 63, + ), + }, + Token { + kind: RightBrace, + span: ( + 97, + 65, + ), + }, + Token { + kind: Function, + span: ( + 98, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 98, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 98, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 98, + 14, + ), + }, + Token { + kind: Pipe, + span: ( + 98, + 17, + ), + }, + Token { + kind: LeftParen, + span: ( + 98, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 98, + 19, + ), + }, + Token { + kind: Ampersand, + span: ( + 98, + 22, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 98, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 98, + 26, + ), + }, + Token { + kind: Ellipsis, + span: ( + 98, + 28, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 98, + 31, + ), + }, + Token { + kind: RightParen, + span: ( + 98, + 33, + ), + }, + Token { + kind: Colon, + span: ( + 98, + 34, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 98, + 36, + ), + }, + Token { + kind: LeftBrace, + span: ( + 98, + 40, + ), + }, + Token { + kind: Return, + span: ( + 98, + 42, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 98, + 49, + ), + }, + Token { + kind: DoubleColon, + span: ( + 98, + 52, + ), + }, + Token { + kind: From, + span: ( + 98, + 54, + ), + }, + Token { + kind: LeftParen, + span: ( + 98, + 58, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 98, + 59, + ), + }, + Token { + kind: RightParen, + span: ( + 98, + 61, + ), + }, + Token { + kind: SemiColon, + span: ( + 98, + 62, + ), + }, + Token { + kind: RightBrace, + span: ( + 98, + 64, + ), + }, + Token { + kind: Function, + span: ( + 99, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 99, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 99, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 99, + 14, + ), + }, + Token { + kind: Pipe, + span: ( + 99, + 17, + ), + }, + Token { + kind: LeftParen, + span: ( + 99, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 99, + 19, + ), + }, + Token { + kind: Ampersand, + span: ( + 99, + 22, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 99, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 99, + 26, + ), + }, + Token { + kind: Ampersand, + span: ( + 99, + 28, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 99, + 29, + ), + }, + Token { + kind: RightParen, + span: ( + 99, + 31, + ), + }, + Token { + kind: Colon, + span: ( + 99, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 99, + 34, + ), + }, + Token { + kind: LeftBrace, + span: ( + 99, + 38, + ), + }, + Token { + kind: Return, + span: ( + 99, + 40, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 99, + 47, + ), + }, + Token { + kind: DoubleColon, + span: ( + 99, + 50, + ), + }, + Token { + kind: From, + span: ( + 99, + 52, + ), + }, + Token { + kind: LeftParen, + span: ( + 99, + 56, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 99, + 57, + ), + }, + Token { + kind: RightParen, + span: ( + 99, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 99, + 60, + ), + }, + Token { + kind: RightBrace, + span: ( + 99, + 62, + ), + }, + Token { + kind: Function, + span: ( + 100, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 100, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 100, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 100, + 14, + ), + }, + Token { + kind: Pipe, + span: ( + 100, + 17, + ), + }, + Token { + kind: LeftParen, + span: ( + 100, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 100, + 19, + ), + }, + Token { + kind: Ampersand, + span: ( + 100, + 22, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 100, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 100, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 100, + 28, + ), + }, + Token { + kind: RightParen, + span: ( + 100, + 30, + ), + }, + Token { + kind: Colon, + span: ( + 100, + 31, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 100, + 33, + ), + }, + Token { + kind: LeftBrace, + span: ( + 100, + 37, + ), + }, + Token { + kind: Return, + span: ( + 100, + 39, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 100, + 46, + ), + }, + Token { + kind: DoubleColon, + span: ( + 100, + 49, + ), + }, + Token { + kind: From, + span: ( + 100, + 51, + ), + }, + Token { + kind: LeftParen, + span: ( + 100, + 55, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 100, + 56, + ), + }, + Token { + kind: RightParen, + span: ( + 100, + 58, + ), + }, + Token { + kind: SemiColon, + span: ( + 100, + 59, + ), + }, + Token { + kind: RightBrace, + span: ( + 100, + 61, + ), + }, + Token { + kind: Function, + span: ( + 101, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 101, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 101, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 101, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 101, + 17, + ), + }, + Token { + kind: LeftParen, + span: ( + 101, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 101, + 19, + ), + }, + Token { + kind: Pipe, + span: ( + 101, + 22, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 101, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 101, + 26, + ), + }, + Token { + kind: Ampersand, + span: ( + 101, + 28, + ), + }, + Token { + kind: Ellipsis, + span: ( + 101, + 29, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 101, + 32, + ), + }, + Token { + kind: RightParen, + span: ( + 101, + 34, + ), + }, + Token { + kind: Colon, + span: ( + 101, + 35, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 101, + 37, + ), + }, + Token { + kind: LeftBrace, + span: ( + 101, + 41, + ), + }, + Token { + kind: Return, + span: ( + 101, + 43, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 101, + 50, + ), + }, + Token { + kind: DoubleColon, + span: ( + 101, + 53, + ), + }, + Token { + kind: From, + span: ( + 101, + 55, + ), + }, + Token { + kind: LeftParen, + span: ( + 101, + 59, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 101, + 60, + ), + }, + Token { + kind: RightParen, + span: ( + 101, + 62, + ), + }, + Token { + kind: SemiColon, + span: ( + 101, + 63, + ), + }, + Token { + kind: RightBrace, + span: ( + 101, + 65, + ), + }, + Token { + kind: Function, + span: ( + 102, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 102, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 102, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 102, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 102, + 17, + ), + }, + Token { + kind: LeftParen, + span: ( + 102, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 102, + 19, + ), + }, + Token { + kind: Pipe, + span: ( + 102, + 22, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 102, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 102, + 26, + ), + }, + Token { + kind: Ellipsis, + span: ( + 102, + 28, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 102, + 31, + ), + }, + Token { + kind: RightParen, + span: ( + 102, + 33, + ), + }, + Token { + kind: Colon, + span: ( + 102, + 34, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 102, + 36, + ), + }, + Token { + kind: LeftBrace, + span: ( + 102, + 40, + ), + }, + Token { + kind: Return, + span: ( + 102, + 42, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 102, + 49, + ), + }, + Token { + kind: DoubleColon, + span: ( + 102, + 52, + ), + }, + Token { + kind: From, + span: ( + 102, + 54, + ), + }, + Token { + kind: LeftParen, + span: ( + 102, + 58, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 102, + 59, + ), + }, + Token { + kind: RightParen, + span: ( + 102, + 61, + ), + }, + Token { + kind: SemiColon, + span: ( + 102, + 62, + ), + }, + Token { + kind: RightBrace, + span: ( + 102, + 64, + ), + }, + Token { + kind: Function, + span: ( + 103, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 103, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 103, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 103, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 103, + 17, + ), + }, + Token { + kind: LeftParen, + span: ( + 103, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 103, + 19, + ), + }, + Token { + kind: Pipe, + span: ( + 103, + 22, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 103, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 103, + 26, + ), + }, + Token { + kind: Ampersand, + span: ( + 103, + 28, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 103, + 29, + ), + }, + Token { + kind: RightParen, + span: ( + 103, + 31, + ), + }, + Token { + kind: Colon, + span: ( + 103, + 32, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 103, + 34, + ), + }, + Token { + kind: LeftBrace, + span: ( + 103, + 38, + ), + }, + Token { + kind: Return, + span: ( + 103, + 40, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 103, + 47, + ), + }, + Token { + kind: DoubleColon, + span: ( + 103, + 50, + ), + }, + Token { + kind: From, + span: ( + 103, + 52, + ), + }, + Token { + kind: LeftParen, + span: ( + 103, + 56, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 103, + 57, + ), + }, + Token { + kind: RightParen, + span: ( + 103, + 59, + ), + }, + Token { + kind: SemiColon, + span: ( + 103, + 60, + ), + }, + Token { + kind: RightBrace, + span: ( + 103, + 62, + ), + }, + Token { + kind: Function, + span: ( + 104, + 1, + ), + }, + Token { + kind: Identifier( + "foo", + ), + span: ( + 104, + 10, + ), + }, + Token { + kind: LeftParen, + span: ( + 104, + 13, + ), + }, + Token { + kind: Identifier( + "Foo", + ), + span: ( + 104, + 14, + ), + }, + Token { + kind: Ampersand, + span: ( + 104, + 17, + ), + }, + Token { + kind: LeftParen, + span: ( + 104, + 18, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 104, + 19, + ), + }, + Token { + kind: Pipe, + span: ( + 104, + 22, + ), + }, + Token { + kind: Identifier( + "Baz", + ), + span: ( + 104, + 23, + ), + }, + Token { + kind: RightParen, + span: ( + 104, + 26, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 104, + 28, + ), + }, + Token { + kind: RightParen, + span: ( + 104, + 30, + ), + }, + Token { + kind: Colon, + span: ( + 104, + 31, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 104, + 33, + ), + }, + Token { + kind: LeftBrace, + span: ( + 104, + 37, + ), + }, + Token { + kind: Return, + span: ( + 104, + 39, + ), + }, + Token { + kind: Identifier( + "Bar", + ), + span: ( + 104, + 46, + ), + }, + Token { + kind: DoubleColon, + span: ( + 104, + 49, + ), + }, + Token { + kind: From, + span: ( + 104, + 51, + ), + }, + Token { + kind: LeftParen, + span: ( + 104, + 55, + ), + }, + Token { + kind: Variable( + "s", + ), + span: ( + 104, + 56, + ), + }, + Token { + kind: RightParen, + span: ( + 104, + 58, + ), + }, + Token { + kind: SemiColon, + span: ( + 104, + 59, + ), + }, + Token { + kind: RightBrace, + span: ( + 104, + 61, + ), + }, +] diff --git a/tests/third_party_tests.rs b/tests/third_party_tests.rs index 2f52ca0..dad6585 100644 --- a/tests/third_party_tests.rs +++ b/tests/third_party_tests.rs @@ -80,8 +80,8 @@ fn third_party_6_spiral_framework() { &["src", "tests"], &[ // file contains syntax error used for testing. - "/src/Core/tests/Fixtures/CorruptedClass.php", - "/src/Tokenizer/tests/Classes/BrokenClass.php", + "src/Core/tests/Fixtures/CorruptedClass.php", + "src/Tokenizer/tests/Classes/BrokenClass.php", ], ); }