[
    Interface(
        Interface {
            span: (
                3,
                1,
            ),
            attributes: [],
            name: SimpleIdentifier {
                span: (
                    3,
                    11,
                ),
                value: "A",
            },
            extends: None,
            body: InterfaceBody {
                start: (
                    3,
                    13,
                ),
                end: (
                    3,
                    14,
                ),
                members: [],
            },
        },
    ),
    Interface(
        Interface {
            span: (
                4,
                1,
            ),
            attributes: [],
            name: SimpleIdentifier {
                span: (
                    4,
                    11,
                ),
                value: "B",
            },
            extends: None,
            body: InterfaceBody {
                start: (
                    4,
                    13,
                ),
                end: (
                    4,
                    14,
                ),
                members: [],
            },
        },
    ),
    Interface(
        Interface {
            span: (
                5,
                1,
            ),
            attributes: [],
            name: SimpleIdentifier {
                span: (
                    5,
                    11,
                ),
                value: "C",
            },
            extends: None,
            body: InterfaceBody {
                start: (
                    5,
                    13,
                ),
                end: (
                    5,
                    14,
                ),
                members: [],
            },
        },
    ),
    Interface(
        Interface {
            span: (
                6,
                1,
            ),
            attributes: [],
            name: SimpleIdentifier {
                span: (
                    6,
                    11,
                ),
                value: "D",
            },
            extends: None,
            body: InterfaceBody {
                start: (
                    6,
                    13,
                ),
                end: (
                    6,
                    14,
                ),
                members: [],
            },
        },
    ),
    Function(
        Function {
            start: (
                8,
                1,
            ),
            end: (
                10,
                1,
            ),
            name: SimpleIdentifier {
                span: (
                    8,
                    10,
                ),
                value: "foo",
            },
            attributes: [],
            parameters: FunctionParameterList {
                start: (
                    8,
                    13,
                ),
                end: (
                    8,
                    27,
                ),
                members: [
                    FunctionParameter {
                        start: (
                            8,
                            14,
                        ),
                        end: (
                            8,
                            26,
                        ),
                        name: SimpleVariable {
                            span: (
                                8,
                                24,
                            ),
                            name: "a",
                        },
                        attributes: [],
                        type: Some(
                            Union(
                                [
                                    Identifier(
                                        SimpleIdentifier {
                                            span: (
                                                8,
                                                14,
                                            ),
                                            value: "A",
                                        },
                                    ),
                                    Intersection(
                                        [
                                            Identifier(
                                                SimpleIdentifier {
                                                    span: (
                                                        8,
                                                        17,
                                                    ),
                                                    value: "B",
                                                },
                                            ),
                                            Identifier(
                                                SimpleIdentifier {
                                                    span: (
                                                        8,
                                                        19,
                                                    ),
                                                    value: "C",
                                                },
                                            ),
                                            Identifier(
                                                SimpleIdentifier {
                                                    span: (
                                                        8,
                                                        21,
                                                    ),
                                                    value: "D",
                                                },
                                            ),
                                        ],
                                    ),
                                ],
                            ),
                        ),
                        variadic: false,
                        default: None,
                        by_ref: false,
                    },
                ],
            },
            return_type: Some(
                Intersection(
                    [
                        Identifier(
                            SimpleIdentifier {
                                span: (
                                    8,
                                    29,
                                ),
                                value: "A",
                            },
                        ),
                        Union(
                            [
                                Identifier(
                                    SimpleIdentifier {
                                        span: (
                                            8,
                                            32,
                                        ),
                                        value: "B",
                                    },
                                ),
                                Identifier(
                                    SimpleIdentifier {
                                        span: (
                                            8,
                                            34,
                                        ),
                                        value: "C",
                                    },
                                ),
                                Identifier(
                                    SimpleIdentifier {
                                        span: (
                                            8,
                                            36,
                                        ),
                                        value: "D",
                                    },
                                ),
                            ],
                        ),
                    ],
                ),
            ),
            by_ref: false,
            body: [
                Expression {
                    expression: Exit {
                        value: Some(
                            LiteralInteger {
                                span: (
                                    9,
                                    10,
                                ),
                                value: "0",
                            },
                        ),
                    },
                    end: (
                        9,
                        12,
                    ),
                },
            ],
        },
    ),
]
