DefinitionTree {
    definitions: [
        Function(
            FunctionDefinition {
                comments: CommentGroup {
                    comments: [],
                },
                attributes: [],
                function: Keyword {
                    value: "function",
                    position: 0,
                },
                name: Identifier {
                    position: 9,
                    value: "foo",
                },
                templates: None,
                parameters: FunctionLikeParameterListDefinition {
                    comments: CommentGroup {
                        comments: [],
                    },
                    left_parenthesis: 12,
                    parameters: CommaSeparated {
                        inner: [
                            FunctionLikeParameterDefinition {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                attributes: [],
                                type_definition: String(
                                    Keyword {
                                        value: "string",
                                        position: 13,
                                    },
                                ),
                                ellipsis: None,
                                variable: Variable {
                                    position: 20,
                                    name: "$foo",
                                },
                                default: None,
                            },
                        ],
                        commas: [],
                    },
                    right_parenthesis: 24,
                },
                return_type: FunctionLikeReturnTypeDefinition {
                    colon: 25,
                    type_definition: Identifier(
                        TemplatedIdentifier {
                            name: Identifier {
                                position: 27,
                                value: "Bar",
                            },
                            templates: None,
                        },
                    ),
                },
                body: BlockStatement {
                    comments: CommentGroup {
                        comments: [],
                    },
                    left_brace: 31,
                    statements: [
                        Empty(
                            35,
                        ),
                    ],
                    right_brace: 37,
                },
            },
        ),
    ],
    eof: 39,
}