[
    FullOpeningTag(
        Span(
            1,
            1,
        ),
    ),
    Interface(
        Interface {
            attributes: [],
            span: Span(
                3,
                1,
            ),
            name: SimpleIdentifier {
                span: Span(
                    3,
                    11,
                ),
                value: "A",
            },
            extends: None,
            body: InterfaceBody {
                left_brace: Span(
                    3,
                    13,
                ),
                members: [],
                right_brace: Span(
                    3,
                    14,
                ),
            },
        },
    ),
    Interface(
        Interface {
            attributes: [],
            span: Span(
                4,
                1,
            ),
            name: SimpleIdentifier {
                span: Span(
                    4,
                    11,
                ),
                value: "B",
            },
            extends: None,
            body: InterfaceBody {
                left_brace: Span(
                    4,
                    13,
                ),
                members: [],
                right_brace: Span(
                    4,
                    14,
                ),
            },
        },
    ),
    Interface(
        Interface {
            attributes: [],
            span: Span(
                5,
                1,
            ),
            name: SimpleIdentifier {
                span: Span(
                    5,
                    11,
                ),
                value: "C",
            },
            extends: None,
            body: InterfaceBody {
                left_brace: Span(
                    5,
                    13,
                ),
                members: [],
                right_brace: Span(
                    5,
                    14,
                ),
            },
        },
    ),
    Interface(
        Interface {
            attributes: [],
            span: Span(
                6,
                1,
            ),
            name: SimpleIdentifier {
                span: Span(
                    6,
                    11,
                ),
                value: "D",
            },
            extends: None,
            body: InterfaceBody {
                left_brace: Span(
                    6,
                    13,
                ),
                members: [],
                right_brace: Span(
                    6,
                    14,
                ),
            },
        },
    ),
    Function(
        Function {
            comments: CommentGroup {
                comments: [],
            },
            attributes: [],
            function: Span(
                8,
                1,
            ),
            ampersand: None,
            name: SimpleIdentifier {
                span: Span(
                    8,
                    10,
                ),
                value: "foo",
            },
            parameters: FunctionParameterList {
                comments: CommentGroup {
                    comments: [],
                },
                left_parenthesis: Span(
                    8,
                    13,
                ),
                parameters: CommaSeparated {
                    inner: [
                        FunctionParameter {
                            comments: CommentGroup {
                                comments: [],
                            },
                            name: SimpleVariable {
                                span: Span(
                                    8,
                                    24,
                                ),
                                name: "a",
                            },
                            attributes: [],
                            data_type: Some(
                                Union(
                                    [
                                        Named(
                                            Span(
                                                8,
                                                14,
                                            ),
                                            "A",
                                        ),
                                        Intersection(
                                            [
                                                Named(
                                                    Span(
                                                        8,
                                                        17,
                                                    ),
                                                    "B",
                                                ),
                                                Named(
                                                    Span(
                                                        8,
                                                        19,
                                                    ),
                                                    "C",
                                                ),
                                                Named(
                                                    Span(
                                                        8,
                                                        21,
                                                    ),
                                                    "D",
                                                ),
                                            ],
                                        ),
                                    ],
                                ),
                            ),
                            ellipsis: None,
                            default: None,
                            ampersand: None,
                        },
                    ],
                    commas: [],
                },
                right_parenthesis: Span(
                    8,
                    26,
                ),
            },
            return_type: Some(
                ReturnType {
                    colon: Span(
                        8,
                        27,
                    ),
                    data_type: Intersection(
                        [
                            Named(
                                Span(
                                    8,
                                    29,
                                ),
                                "A",
                            ),
                            Union(
                                [
                                    Named(
                                        Span(
                                            8,
                                            32,
                                        ),
                                        "B",
                                    ),
                                    Named(
                                        Span(
                                            8,
                                            34,
                                        ),
                                        "C",
                                    ),
                                    Named(
                                        Span(
                                            8,
                                            36,
                                        ),
                                        "D",
                                    ),
                                ],
                            ),
                        ],
                    ),
                },
            ),
            body: FunctionBody {
                comments: CommentGroup {
                    comments: [],
                },
                left_brace: Span(
                    8,
                    39,
                ),
                statements: [
                    Expression {
                        expression: Exit {
                            value: Some(
                                Literal(
                                    Integer(
                                        LiteralInteger {
                                            value: "0",
                                            span: Span(
                                                9,
                                                10,
                                            ),
                                        },
                                    ),
                                ),
                            ),
                        },
                        ending: Semicolon(
                            Span(
                                9,
                                12,
                            ),
                        ),
                    },
                ],
                right_brace: Span(
                    10,
                    1,
                ),
            },
        },
    ),
]
