DefinitionTree { definitions: [ Interface( InterfaceDefinition { comments: CommentGroup { comments: [], }, attributes: [], interface: Keyword { value: "interface", position: 0, }, name: Identifier { position: 10, value: "s", }, templates: None, extends: None, body: InterfaceDefinitionBody { left_brace: 12, members: [], right_brace: 13, }, }, ), Interface( InterfaceDefinition { comments: CommentGroup { comments: [], }, attributes: [], interface: Keyword { value: "interface", position: 16, }, name: Identifier { position: 26, value: "foo", }, templates: None, extends: Some( InterfaceDefinitionExtends { extends: Keyword { value: "extends", position: 30, }, parents: CommaSeparated { inner: [ TemplatedIdentifier { name: Identifier { position: 38, value: "s", }, templates: None, }, ], commas: [], }, }, ), body: InterfaceDefinitionBody { left_brace: 40, members: [ Method( MethodDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 53, modifiers: [ Public( Keyword { value: "public", position: 46, }, ), ], }, function: Keyword { value: "function", position: 53, }, name: Identifier { position: 62, value: "bar", }, templates: None, parameters: MethodParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 65, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 66, }, return_type: Some( FunctionLikeReturnTypeDefinition { colon: 67, type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 69, value: "parent", }, templates: None, }, ), }, ), constraints: None, body: Abstract( 75, ), }, ), ], right_brace: 77, }, }, ), ], eof: 79, }