DefinitionTree { definitions: [ TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 1, }, name: TemplatedIdentifier { name: Identifier { position: 6, value: "a", }, templates: None, }, equals: 8, type_definition: Literal( Null( LiteralNull { comments: CommentGroup { comments: [], }, null: Keyword { value: "null", position: 10, }, }, ), ), semicolon: 14, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 16, }, name: TemplatedIdentifier { name: Identifier { position: 21, value: "b", }, templates: None, }, equals: 23, type_definition: Literal( False( LiteralFalse { comments: CommentGroup { comments: [], }, false: Keyword { value: "false", position: 25, }, }, ), ), semicolon: 30, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 32, }, name: TemplatedIdentifier { name: Identifier { position: 37, value: "c", }, templates: None, }, equals: 39, type_definition: Literal( True( LiteralTrue { comments: CommentGroup { comments: [], }, true: Keyword { value: "true", position: 41, }, }, ), ), semicolon: 45, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 47, }, name: TemplatedIdentifier { name: Identifier { position: 52, value: "d", }, templates: None, }, equals: 54, type_definition: NonNull( Keyword { value: "nonnull", position: 56, }, ), semicolon: 63, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 65, }, name: TemplatedIdentifier { name: Identifier { position: 70, value: "e", }, templates: None, }, equals: 72, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 74, value: "a", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 76, value: "b", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 78, value: "c", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 80, value: "d", }, templates: None, }, ), ], ), semicolon: 81, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 83, }, name: TemplatedIdentifier { name: Identifier { position: 88, value: "f", }, templates: None, }, equals: 90, type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 92, value: "Closure", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 99, members: CommaSeparated { inner: [ Parenthesized { left_parenthesis: 100, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 101, value: "a", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 103, value: "b", }, templates: None, }, ), ], ), right_parenthesis: 104, }, Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 107, value: "c", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 109, value: "d", }, templates: None, }, ), ], ), ], commas: [ 105, ], }, greater_than: 110, }, ), }, ), semicolon: 111, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 113, }, name: TemplatedIdentifier { name: Identifier { position: 118, value: "g", }, templates: None, }, equals: 120, type_definition: Vec( Keyword { value: "vec", position: 122, }, TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 125, members: CommaSeparated { inner: [ SignedInteger( Default( Keyword { value: "int", position: 126, }, ), ), ], commas: [], }, greater_than: 129, }, ), semicolon: 130, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 132, }, name: TemplatedIdentifier { name: Identifier { position: 137, value: "h", }, templates: None, }, equals: 139, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 141, value: "Foo", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 144, members: CommaSeparated { inner: [ String( Keyword { value: "string", position: 145, }, ), ], commas: [], }, greater_than: 151, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 153, value: "Bar", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 156, members: CommaSeparated { inner: [ NonNull( Keyword { value: "nonnull", position: 157, }, ), ], commas: [], }, greater_than: 164, }, ), }, ), ], ), semicolon: 165, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 167, }, name: TemplatedIdentifier { name: Identifier { position: 172, value: "i", }, templates: None, }, equals: 174, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 176, value: "Closure", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 183, members: CommaSeparated { inner: [ Parenthesized { left_parenthesis: 184, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 185, value: "a", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 187, value: "b", }, templates: None, }, ), ], ), right_parenthesis: 188, }, Identifier( TemplatedIdentifier { name: Identifier { position: 191, value: "g", }, templates: None, }, ), ], commas: [ 189, ], }, greater_than: 192, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 194, value: "Closure", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 201, members: CommaSeparated { inner: [ Parenthesized { left_parenthesis: 202, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 203, value: "a", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 205, value: "b", }, templates: None, }, ), ], ), right_parenthesis: 206, }, Identifier( TemplatedIdentifier { name: Identifier { position: 209, value: "h", }, templates: None, }, ), ], commas: [ 207, ], }, greater_than: 210, }, ), }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 212, value: "Closure", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 219, members: CommaSeparated { inner: [ Parenthesized { left_parenthesis: 220, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 221, value: "a", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 223, value: "b", }, templates: None, }, ), ], ), right_parenthesis: 224, }, Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 227, value: "a", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 229, value: "b", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 231, value: "c", }, templates: None, }, ), ], ), ], commas: [ 225, ], }, greater_than: 232, }, ), }, ), Parenthesized { left_parenthesis: 234, type_definition: Intersection( [ Identifier( TemplatedIdentifier { name: Identifier { position: 235, value: "Foo", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 239, value: "Bar", }, templates: None, }, ), ], ), right_parenthesis: 242, }, ], ), semicolon: 243, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 245, }, name: TemplatedIdentifier { name: Identifier { position: 250, value: "j", }, templates: None, }, equals: 252, type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 254, value: "Closure", }, templates: Some( TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 261, members: CommaSeparated { inner: [ Parenthesized { left_parenthesis: 262, type_definition: Union( [ Identifier( TemplatedIdentifier { name: Identifier { position: 263, value: "a", }, templates: None, }, ), Identifier( TemplatedIdentifier { name: Identifier { position: 265, value: "b", }, templates: None, }, ), ], ), right_parenthesis: 266, }, Identifier( TemplatedIdentifier { name: Identifier { position: 269, value: "i", }, templates: None, }, ), ], commas: [ 267, ], }, greater_than: 270, }, ), }, ), semicolon: 271, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 273, }, name: TemplatedIdentifier { name: Identifier { position: 278, value: "k", }, templates: None, }, equals: 280, type_definition: Dict( Keyword { value: "dict", position: 282, }, TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 286, members: CommaSeparated { inner: [ SignedInteger( Default( Keyword { value: "int", position: 287, }, ), ), Iterable( Keyword { value: "iterable", position: 292, }, TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 300, members: CommaSeparated { inner: [ SignedInteger( Default( Keyword { value: "int", position: 301, }, ), ), ], commas: [], }, greater_than: 304, }, ), ], commas: [ 290, ], }, greater_than: 305, }, ), semicolon: 306, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 308, }, name: TemplatedIdentifier { name: Identifier { position: 313, value: "l", }, templates: None, }, equals: 315, type_definition: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""bar"", position: 317, }, ), ), semicolon: 322, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 324, }, name: TemplatedIdentifier { name: Identifier { position: 329, value: "m", }, templates: None, }, equals: 331, type_definition: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 333, }, ), ), semicolon: 334, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 336, }, name: TemplatedIdentifier { name: Identifier { position: 341, value: "n", }, templates: None, }, equals: 343, type_definition: Literal( Float( LiteralFloat { comments: CommentGroup { comments: [], }, value: "1.5", position: 345, }, ), ), semicolon: 348, }, ), TypeAlias( TypeAliasDefinition { type: Keyword { value: "type", position: 350, }, name: TemplatedIdentifier { name: Identifier { position: 355, value: "o", }, templates: None, }, equals: 357, type_definition: Union( [ Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 359, }, ), ), Literal( Float( LiteralFloat { comments: CommentGroup { comments: [], }, value: "1.5", position: 363, }, ), ), Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 369, }, ), ), Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""foo"", position: 373, }, ), ), Literal( Float( LiteralFloat { comments: CommentGroup { comments: [], }, value: "2.5", position: 381, }, ), ), Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""bar"", position: 387, }, ), ), ], ), semicolon: 392, }, ), ], eof: 394, }