[
    Function(
        Function {
            start: (
                3,
                1,
            ),
            end: (
                9,
                1,
            ),
            name: SimpleIdentifier {
                span: (
                    3,
                    10,
                ),
                value: "foo",
            },
            attributes: [],
            parameters: FunctionParameterList {
                start: (
                    3,
                    13,
                ),
                end: (
                    3,
                    18,
                ),
                members: [
                    FunctionParameter {
                        start: (
                            3,
                            14,
                        ),
                        end: (
                            3,
                            16,
                        ),
                        name: SimpleVariable {
                            span: (
                                3,
                                14,
                            ),
                            name: "a",
                        },
                        attributes: [],
                        type: None,
                        variadic: false,
                        default: None,
                        by_ref: false,
                    },
                ],
            },
            return_type: None,
            by_ref: false,
            body: [
                Global {
                    span: (
                        4,
                        5,
                    ),
                    variables: [
                        SimpleVariable(
                            SimpleVariable {
                                span: (
                                    4,
                                    12,
                                ),
                                name: "f",
                            },
                        ),
                    ],
                },
                Global {
                    span: (
                        5,
                        5,
                    ),
                    variables: [
                        BracedVariableVariable(
                            BracedVariableVariable {
                                start: (
                                    5,
                                    12,
                                ),
                                variable: ArrayIndex {
                                    array: Variable(
                                        SimpleVariable(
                                            SimpleVariable {
                                                span: (
                                                    5,
                                                    14,
                                                ),
                                                name: "a",
                                            },
                                        ),
                                    ),
                                    index: Some(
                                        LiteralInteger {
                                            span: (
                                                5,
                                                17,
                                            ),
                                            value: "3",
                                        },
                                    ),
                                },
                                end: (
                                    5,
                                    19,
                                ),
                            },
                        ),
                    ],
                },
                Global {
                    span: (
                        6,
                        5,
                    ),
                    variables: [
                        BracedVariableVariable(
                            BracedVariableVariable {
                                start: (
                                    6,
                                    12,
                                ),
                                variable: Variable(
                                    BracedVariableVariable(
                                        BracedVariableVariable {
                                            start: (
                                                6,
                                                14,
                                            ),
                                            variable: ArrayIndex {
                                                array: Variable(
                                                    SimpleVariable(
                                                        SimpleVariable {
                                                            span: (
                                                                6,
                                                                16,
                                                            ),
                                                            name: "a",
                                                        },
                                                    ),
                                                ),
                                                index: Some(
                                                    LiteralInteger {
                                                        span: (
                                                            6,
                                                            19,
                                                        ),
                                                        value: "3",
                                                    },
                                                ),
                                            },
                                            end: (
                                                6,
                                                21,
                                            ),
                                        },
                                    ),
                                ),
                                end: (
                                    6,
                                    22,
                                ),
                            },
                        ),
                        BracedVariableVariable(
                            BracedVariableVariable {
                                start: (
                                    6,
                                    25,
                                ),
                                variable: Variable(
                                    BracedVariableVariable(
                                        BracedVariableVariable {
                                            start: (
                                                6,
                                                27,
                                            ),
                                            variable: Variable(
                                                BracedVariableVariable(
                                                    BracedVariableVariable {
                                                        start: (
                                                            6,
                                                            29,
                                                        ),
                                                        variable: ArrayIndex {
                                                            array: Variable(
                                                                SimpleVariable(
                                                                    SimpleVariable {
                                                                        span: (
                                                                            6,
                                                                            31,
                                                                        ),
                                                                        name: "a",
                                                                    },
                                                                ),
                                                            ),
                                                            index: Some(
                                                                LiteralInteger {
                                                                    span: (
                                                                        6,
                                                                        34,
                                                                    ),
                                                                    value: "3",
                                                                },
                                                            ),
                                                        },
                                                        end: (
                                                            6,
                                                            36,
                                                        ),
                                                    },
                                                ),
                                            ),
                                            end: (
                                                6,
                                                37,
                                            ),
                                        },
                                    ),
                                ),
                                end: (
                                    6,
                                    38,
                                ),
                            },
                        ),
                        BracedVariableVariable(
                            BracedVariableVariable {
                                start: (
                                    6,
                                    41,
                                ),
                                variable: Variable(
                                    BracedVariableVariable(
                                        BracedVariableVariable {
                                            start: (
                                                6,
                                                43,
                                            ),
                                            variable: Variable(
                                                BracedVariableVariable(
                                                    BracedVariableVariable {
                                                        start: (
                                                            6,
                                                            45,
                                                        ),
                                                        variable: Variable(
                                                            BracedVariableVariable(
                                                                BracedVariableVariable {
                                                                    start: (
                                                                        6,
                                                                        47,
                                                                    ),
                                                                    variable: ArrayIndex {
                                                                        array: Variable(
                                                                            SimpleVariable(
                                                                                SimpleVariable {
                                                                                    span: (
                                                                                        6,
                                                                                        49,
                                                                                    ),
                                                                                    name: "a",
                                                                                },
                                                                            ),
                                                                        ),
                                                                        index: Some(
                                                                            LiteralInteger {
                                                                                span: (
                                                                                    6,
                                                                                    52,
                                                                                ),
                                                                                value: "3",
                                                                            },
                                                                        ),
                                                                    },
                                                                    end: (
                                                                        6,
                                                                        54,
                                                                    ),
                                                                },
                                                            ),
                                                        ),
                                                        end: (
                                                            6,
                                                            55,
                                                        ),
                                                    },
                                                ),
                                            ),
                                            end: (
                                                6,
                                                56,
                                            ),
                                        },
                                    ),
                                ),
                                end: (
                                    6,
                                    57,
                                ),
                            },
                        ),
                    ],
                },
                Echo {
                    values: [
                        Variable(
                            SimpleVariable(
                                SimpleVariable {
                                    span: (
                                        8,
                                        10,
                                    ),
                                    name: "p",
                                },
                            ),
                        ),
                    ],
                },
            ],
        },
    ),
    Expression {
        expression: AssignmentOperation(
            Assign {
                left: Variable(
                    SimpleVariable(
                        SimpleVariable {
                            span: (
                                11,
                                1,
                            ),
                            name: "p",
                        },
                    ),
                ),
                span: (
                    11,
                    4,
                ),
                right: LiteralString {
                    span: (
                        11,
                        6,
                    ),
                    value: "why!",
                },
            },
        ),
        end: (
            11,
            12,
        ),
    },
    Expression {
        expression: AssignmentOperation(
            Assign {
                left: Variable(
                    SimpleVariable(
                        SimpleVariable {
                            span: (
                                12,
                                1,
                            ),
                            name: "s",
                        },
                    ),
                ),
                span: (
                    12,
                    4,
                ),
                right: LiteralString {
                    span: (
                        12,
                        6,
                    ),
                    value: "p",
                },
            },
        ),
        end: (
            12,
            9,
        ),
    },
    Expression {
        expression: AssignmentOperation(
            Assign {
                left: Variable(
                    SimpleVariable(
                        SimpleVariable {
                            span: (
                                13,
                                1,
                            ),
                            name: "m",
                        },
                    ),
                ),
                span: (
                    13,
                    4,
                ),
                right: LiteralString {
                    span: (
                        13,
                        6,
                    ),
                    value: "s",
                },
            },
        ),
        end: (
            13,
            9,
        ),
    },
    Expression {
        expression: AssignmentOperation(
            Assign {
                left: Variable(
                    SimpleVariable(
                        SimpleVariable {
                            span: (
                                14,
                                1,
                            ),
                            name: "f",
                        },
                    ),
                ),
                span: (
                    14,
                    4,
                ),
                right: LiteralString {
                    span: (
                        14,
                        6,
                    ),
                    value: "m",
                },
            },
        ),
        end: (
            14,
            9,
        ),
    },
    Expression {
        expression: FunctionCall {
            target: Identifier(
                SimpleIdentifier(
                    SimpleIdentifier {
                        span: (
                            15,
                            1,
                        ),
                        value: "foo",
                    },
                ),
            ),
            arguments: ArgumentList {
                start: (
                    15,
                    4,
                ),
                arguments: [
                    Positional {
                        ellipsis: None,
                        value: Array {
                            items: [
                                ArrayItem {
                                    key: Some(
                                        LiteralInteger {
                                            span: (
                                                15,
                                                6,
                                            ),
                                            value: "3",
                                        },
                                    ),
                                    value: LiteralString {
                                        span: (
                                            15,
                                            11,
                                        ),
                                        value: "f",
                                    },
                                    unpack: false,
                                    by_ref: false,
                                },
                            ],
                        },
                    },
                ],
                end: (
                    15,
                    15,
                ),
            },
        },
        end: (
            15,
            16,
        ),
    },
]
