DefinitionTree { definitions: [ TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 0, }, name: TemplatedIdentifier { name: Identifier { position: 5, value: "test", }, templates: None, }, equals: 10, type_definition: Tuple { left_parenthesis: 12, type_definitions: CommaSeparated { inner: [ Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 13, value: "A", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 15, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 17, value: "C", }, templates: None, }, ), ], ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 20, value: "A", }, templates: None, }, ), Parenthesized { left_parenthesis: 22, type_definition: Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 23, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 25, value: "C", }, templates: None, }, ), ], ), right_parenthesis: 26, }, ], ), Union( [ Parenthesized { left_parenthesis: 29, type_definition: Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 30, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 32, value: "C", }, templates: None, }, ), ], ), right_parenthesis: 33, }, Identifier( TemplatedIdentifier { name: Identifier { position: 35, value: "A", }, templates: None, }, ), ], ), ], commas: [ 18, 27, ], }, right_parenthesis: 36, }, semicolon: 37, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 39, }, name: TemplatedIdentifier { name: Identifier { position: 44, value: "test", }, templates: None, }, equals: 49, type_definition: Tuple { left_parenthesis: 51, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 52, value: "A", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 55, value: "A", }, templates: None, }, ), Tuple { left_parenthesis: 57, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 58, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 59, }, ], ), Union( [ Tuple { left_parenthesis: 62, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 63, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 64, }, Identifier( TemplatedIdentifier { name: Identifier { position: 66, value: "A", }, templates: None, }, ), ], ), ], commas: [ 53, 60, ], }, right_parenthesis: 67, }, semicolon: 68, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 70, }, name: TemplatedIdentifier { name: Identifier { position: 75, value: "test", }, templates: None, }, equals: 80, type_definition: Tuple { left_parenthesis: 82, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 83, value: "A", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 86, value: "A", }, templates: None, }, ), Union( [ Tuple { left_parenthesis: 89, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 90, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 91, }, Identifier( TemplatedIdentifier { name: Identifier { position: 93, value: "A", }, templates: None, }, ), ], ), ], commas: [ 84, 87, ], }, right_parenthesis: 94, }, semicolon: 95, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 97, }, name: TemplatedIdentifier { name: Identifier { position: 102, value: "test", }, templates: None, }, equals: 107, type_definition: Tuple { left_parenthesis: 109, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 110, value: "A", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 113, value: "A", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 116, value: "A", }, templates: None, }, ), ], commas: [ 111, 114, ], }, right_parenthesis: 117, }, semicolon: 118, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 120, }, name: TemplatedIdentifier { name: Identifier { position: 125, value: "test", }, templates: None, }, equals: 130, type_definition: Tuple { left_parenthesis: 132, type_definitions: CommaSeparated { inner: [ Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 133, value: "A", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 135, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 137, value: "C", }, templates: None, }, ), ], ), Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 140, value: "A", }, templates: None, }, ), Parenthesized { left_parenthesis: 142, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 143, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 145, value: "C", }, templates: None, }, ), ], ), right_parenthesis: 146, }, ], ), Intersection( [ Parenthesized { left_parenthesis: 149, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 150, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 152, value: "C", }, templates: None, }, ), ], ), right_parenthesis: 153, }, Identifier( TemplatedIdentifier { name: Identifier { position: 155, value: "A", }, templates: None, }, ), ], ), ], commas: [ 138, 147, ], }, right_parenthesis: 156, }, semicolon: 157, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 159, }, name: TemplatedIdentifier { name: Identifier { position: 164, value: "test", }, templates: None, }, equals: 169, type_definition: Tuple { left_parenthesis: 171, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 172, value: "A", }, templates: None, }, ), Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 175, value: "A", }, templates: None, }, ), Tuple { left_parenthesis: 177, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 178, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 179, }, ], ), Intersection( [ Tuple { left_parenthesis: 182, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 183, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 184, }, Identifier( TemplatedIdentifier { name: Identifier { position: 186, value: "A", }, templates: None, }, ), ], ), ], commas: [ 173, 180, ], }, right_parenthesis: 187, }, semicolon: 188, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 190, }, name: TemplatedIdentifier { name: Identifier { position: 195, value: "test", }, templates: None, }, equals: 200, type_definition: Tuple { left_parenthesis: 202, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 203, value: "A", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 206, value: "A", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 209, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 210, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 211, }, Identifier( TemplatedIdentifier { name: Identifier { position: 213, value: "A", }, templates: None, }, ), ], ), ], commas: [ 204, 207, ], }, right_parenthesis: 214, }, semicolon: 215, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 217, }, name: TemplatedIdentifier { name: Identifier { position: 222, value: "test", }, templates: None, }, equals: 227, type_definition: Tuple { left_parenthesis: 229, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 230, value: "A", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 233, value: "A", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 236, value: "A", }, templates: None, }, ), ], commas: [ 231, 234, ], }, right_parenthesis: 237, }, semicolon: 238, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 240, }, name: TemplatedIdentifier { name: Identifier { position: 245, value: "test", }, templates: None, }, equals: 250, type_definition: Tuple { left_parenthesis: 252, type_definitions: CommaSeparated { inner: [ Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 253, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 254, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 255, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 258, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 261, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 262, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 267, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 271, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 265, ], }, right_parenthesis: 274, }, Identifier( TemplatedIdentifier { name: Identifier { position: 276, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 256, 259, ], }, greater_than: 279, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 281, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 283, value: "C", }, templates: None, }, ), ], ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 286, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 287, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 288, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 291, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 294, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 295, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 300, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 304, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 298, ], }, right_parenthesis: 307, }, Identifier( TemplatedIdentifier { name: Identifier { position: 309, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 289, 292, ], }, greater_than: 312, }, ), }, ), Parenthesized { left_parenthesis: 314, type_definition: Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 315, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 317, value: "C", }, templates: None, }, ), ], ), right_parenthesis: 318, }, ], ), Union( [ Parenthesized { left_parenthesis: 321, type_definition: Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 322, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 324, value: "C", }, templates: None, }, ), ], ), right_parenthesis: 325, }, Identifier( TemplatedIdentifier { name: Identifier { position: 327, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 328, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 329, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 332, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 335, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 336, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 341, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 345, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 339, ], }, right_parenthesis: 348, }, Identifier( TemplatedIdentifier { name: Identifier { position: 350, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 330, 333, ], }, greater_than: 353, }, ), }, ), ], ), ], commas: [ 284, 319, ], }, right_parenthesis: 354, }, semicolon: 355, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 357, }, name: TemplatedIdentifier { name: Identifier { position: 362, value: "test", }, templates: None, }, equals: 367, type_definition: Tuple { left_parenthesis: 369, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 370, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 371, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 372, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 375, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 378, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 379, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 384, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 388, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 382, ], }, right_parenthesis: 391, }, Identifier( TemplatedIdentifier { name: Identifier { position: 393, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 373, 376, ], }, greater_than: 396, }, ), }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 399, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 400, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 401, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 404, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 407, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 408, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 413, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 417, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 411, ], }, right_parenthesis: 420, }, Identifier( TemplatedIdentifier { name: Identifier { position: 422, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 402, 405, ], }, greater_than: 425, }, ), }, ), Tuple { left_parenthesis: 427, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 428, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 429, }, ], ), Union( [ Tuple { left_parenthesis: 432, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 433, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 434, }, Identifier( TemplatedIdentifier { name: Identifier { position: 436, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 437, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 438, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 441, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 444, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 445, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 450, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 454, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 448, ], }, right_parenthesis: 457, }, Identifier( TemplatedIdentifier { name: Identifier { position: 459, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 439, 442, ], }, greater_than: 462, }, ), }, ), ], ), ], commas: [ 397, 430, ], }, right_parenthesis: 463, }, semicolon: 464, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 466, }, name: TemplatedIdentifier { name: Identifier { position: 471, value: "test", }, templates: None, }, equals: 476, type_definition: Tuple { left_parenthesis: 478, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 479, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 480, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 481, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 484, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 487, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 488, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 493, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 497, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 491, ], }, right_parenthesis: 500, }, Identifier( TemplatedIdentifier { name: Identifier { position: 502, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 482, 485, ], }, greater_than: 505, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 508, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 509, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 510, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 513, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 516, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 517, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 522, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 526, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 520, ], }, right_parenthesis: 529, }, Identifier( TemplatedIdentifier { name: Identifier { position: 531, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 511, 514, ], }, greater_than: 534, }, ), }, ), Union( [ Tuple { left_parenthesis: 537, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 538, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 539, }, Identifier( TemplatedIdentifier { name: Identifier { position: 541, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 542, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 543, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 546, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 549, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 550, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 555, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 559, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 553, ], }, right_parenthesis: 562, }, Identifier( TemplatedIdentifier { name: Identifier { position: 564, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 544, 547, ], }, greater_than: 567, }, ), }, ), ], ), ], commas: [ 506, 535, ], }, right_parenthesis: 568, }, semicolon: 569, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 571, }, name: TemplatedIdentifier { name: Identifier { position: 576, value: "test", }, templates: None, }, equals: 581, type_definition: Tuple { left_parenthesis: 583, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 584, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 585, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 586, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 589, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 592, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 593, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 598, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 602, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 596, ], }, right_parenthesis: 605, }, Identifier( TemplatedIdentifier { name: Identifier { position: 607, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 587, 590, ], }, greater_than: 610, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 613, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 614, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 615, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 618, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 621, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 622, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 627, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 631, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 625, ], }, right_parenthesis: 634, }, Identifier( TemplatedIdentifier { name: Identifier { position: 636, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 616, 619, ], }, greater_than: 639, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 642, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 643, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 644, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 647, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 650, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 651, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 656, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 660, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 654, ], }, right_parenthesis: 663, }, Identifier( TemplatedIdentifier { name: Identifier { position: 665, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 645, 648, ], }, greater_than: 668, }, ), }, ), ], commas: [ 611, 640, ], }, right_parenthesis: 669, }, semicolon: 670, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 672, }, name: TemplatedIdentifier { name: Identifier { position: 677, value: "test", }, templates: None, }, equals: 682, type_definition: Tuple { left_parenthesis: 684, type_definitions: CommaSeparated { inner: [ Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 685, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 686, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 687, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 690, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 693, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 694, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 699, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 703, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 697, ], }, right_parenthesis: 706, }, Identifier( TemplatedIdentifier { name: Identifier { position: 708, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 688, 691, ], }, greater_than: 711, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 713, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 715, value: "C", }, templates: None, }, ), ], ), Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 718, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 719, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 720, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 723, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 726, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 727, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 732, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 736, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 730, ], }, right_parenthesis: 739, }, Identifier( TemplatedIdentifier { name: Identifier { position: 741, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 721, 724, ], }, greater_than: 744, }, ), }, ), Parenthesized { left_parenthesis: 746, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 747, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 749, value: "C", }, templates: None, }, ), ], ), right_parenthesis: 750, }, ], ), Intersection( [ Parenthesized { left_parenthesis: 753, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 754, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 756, value: "C", }, templates: None, }, ), ], ), right_parenthesis: 757, }, Identifier( TemplatedIdentifier { name: Identifier { position: 759, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 760, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 761, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 764, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 767, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 768, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 773, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 777, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 771, ], }, right_parenthesis: 780, }, Identifier( TemplatedIdentifier { name: Identifier { position: 782, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 762, 765, ], }, greater_than: 785, }, ), }, ), ], ), ], commas: [ 716, 751, ], }, right_parenthesis: 786, }, semicolon: 787, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 789, }, name: TemplatedIdentifier { name: Identifier { position: 794, value: "test", }, templates: None, }, equals: 799, type_definition: Tuple { left_parenthesis: 801, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 802, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 803, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 804, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 807, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 810, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 811, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 816, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 820, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 814, ], }, right_parenthesis: 823, }, Identifier( TemplatedIdentifier { name: Identifier { position: 825, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 805, 808, ], }, greater_than: 828, }, ), }, ), Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 831, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 832, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 833, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 836, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 839, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 840, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 845, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 849, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 843, ], }, right_parenthesis: 852, }, Identifier( TemplatedIdentifier { name: Identifier { position: 854, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 834, 837, ], }, greater_than: 857, }, ), }, ), Tuple { left_parenthesis: 859, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 860, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 861, }, ], ), Intersection( [ Tuple { left_parenthesis: 864, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 865, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 866, }, Identifier( TemplatedIdentifier { name: Identifier { position: 868, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 869, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 870, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 873, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 876, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 877, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 882, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 886, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 880, ], }, right_parenthesis: 889, }, Identifier( TemplatedIdentifier { name: Identifier { position: 891, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 871, 874, ], }, greater_than: 894, }, ), }, ), ], ), ], commas: [ 829, 862, ], }, right_parenthesis: 895, }, semicolon: 896, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 898, }, name: TemplatedIdentifier { name: Identifier { position: 903, value: "test", }, templates: None, }, equals: 908, type_definition: Tuple { left_parenthesis: 910, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 911, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 912, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 913, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 916, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 919, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 920, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 925, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 929, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 923, ], }, right_parenthesis: 932, }, Identifier( TemplatedIdentifier { name: Identifier { position: 934, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 914, 917, ], }, greater_than: 937, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 940, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 941, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 942, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 945, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 948, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 949, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 954, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 958, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 952, ], }, right_parenthesis: 961, }, Identifier( TemplatedIdentifier { name: Identifier { position: 963, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 943, 946, ], }, greater_than: 966, }, ), }, ), Intersection( [ Tuple { left_parenthesis: 969, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 970, value: "B", }, templates: None, }, ), ], commas: [], }, right_parenthesis: 971, }, Identifier( TemplatedIdentifier { name: Identifier { position: 973, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 974, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 975, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 978, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 981, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 982, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 987, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 991, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 985, ], }, right_parenthesis: 994, }, Identifier( TemplatedIdentifier { name: Identifier { position: 996, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 976, 979, ], }, greater_than: 999, }, ), }, ), ], ), ], commas: [ 938, 967, ], }, right_parenthesis: 1000, }, semicolon: 1001, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 1003, }, name: TemplatedIdentifier { name: Identifier { position: 1008, value: "test", }, templates: None, }, equals: 1013, type_definition: Tuple { left_parenthesis: 1015, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 1016, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 1017, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 1018, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 1021, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 1024, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 1025, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 1030, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 1034, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 1028, ], }, right_parenthesis: 1037, }, Identifier( TemplatedIdentifier { name: Identifier { position: 1039, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 1019, 1022, ], }, greater_than: 1042, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 1045, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 1046, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 1047, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 1050, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 1053, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 1054, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 1059, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 1063, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 1057, ], }, right_parenthesis: 1066, }, Identifier( TemplatedIdentifier { name: Identifier { position: 1068, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 1048, 1051, ], }, greater_than: 1071, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 1074, value: "A", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 1075, members: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 1076, value: "B", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 1079, value: "C", }, templates: None, }, ), Intersection( [ Tuple { left_parenthesis: 1082, type_definitions: CommaSeparated { inner: [ Identifier( TemplatedIdentifier { name: Identifier { position: 1083, value: "Foo", }, templates: None, }, ), Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 1088, value: "Bar", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 1092, value: "Baz", }, templates: None, }, ), ], ), ], commas: [ 1086, ], }, right_parenthesis: 1095, }, Identifier( TemplatedIdentifier { name: Identifier { position: 1097, value: "Qux", }, templates: None, }, ), ], ), ], commas: [ 1077, 1080, ], }, greater_than: 1100, }, ), }, ), ], commas: [ 1043, 1072, ], }, right_parenthesis: 1101, }, semicolon: 1102, }, ), ], eof: 1104, }