---
Function {
    argument: None,
    arguments: FunctionArguments {
        arguments: [
            FunctionArgument {
                identifier: "lua",
                default: None,
            },
            FunctionArgument {
                identifier: "luaSupport",
                default: Some(
                    BinaryOperation {
                        operator: EqualTo,
                        operands: [
                            PropertyAccess {
                                expression: Variable {
                                    identifier: "stdenv",
                                    position: (2, 16),
                                },
                                attribute_path: AttributePath {
                                    attributes: [
                                        Raw {
                                            content: "hostPlatform",
                                            position: (2, 23),
                                        },
                                    ],
                                },
                                default: None,
                            },
                            PropertyAccess {
                                expression: Variable {
                                    identifier: "stdenv",
                                    position: (2, 39),
                                },
                                attribute_path: AttributePath {
                                    attributes: [
                                        Raw {
                                            content: "buildPlatform",
                                            position: (2, 46),
                                        },
                                    ],
                                },
                                default: None,
                            },
                        ],
                    },
                ),
            },
            FunctionArgument {
                identifier: "zlib",
                default: None,
            },
            FunctionArgument {
                identifier: "openssl",
                default: None,
            },
            FunctionArgument {
                identifier: "scdoc",
                default: None,
            },
            FunctionArgument {
                identifier: "pkg-config",
                default: None,
            },
            FunctionArgument {
                identifier: "fetchFromGitLab",
                default: None,
            },
            FunctionArgument {
                identifier: "stdenv",
                default: None,
            },
            FunctionArgument {
                identifier: "lib",
                default: None,
            },
        ],
        ellipsis: false,
    },
    definition: FunctionApplication {
        function: PropertyAccess {
            expression: Variable {
                identifier: "stdenv",
                position: (5, 1),
            },
            attribute_path: AttributePath {
                attributes: [
                    Raw {
                        content: "mkDerivation",
                        position: (5, 8),
                    },
                ],
            },
            default: None,
        },
        arguments: [
            Map {
                bindings: [
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "pname",
                                    position: (6, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "apk-tools",
                                    position: (6, 12),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "version",
                                    position: (7, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "2.12.9",
                                    position: (7, 14),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "src",
                                    position: (9, 3),
                                },
                            ],
                        },
                        FunctionApplication {
                            function: Variable {
                                identifier: "fetchFromGitLab",
                                position: (9, 9),
                            },
                            arguments: [
                                Map {
                                    bindings: [
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "domain",
                                                        position: (10, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "gitlab.alpinelinux.org",
                                                        position: (10, 15),
                                                    },
                                                ],
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "owner",
                                                        position: (11, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "alpine",
                                                        position: (11, 14),
                                                    },
                                                ],
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "repo",
                                                        position: (12, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "apk-tools",
                                                        position: (12, 13),
                                                    },
                                                ],
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "rev",
                                                        position: (13, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "v",
                                                        position: (13, 12),
                                                    },
                                                    Expression {
                                                        expression: Variable {
                                                            identifier: "version",
                                                            position: (13, 15),
                                                        },
                                                    },
                                                ],
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "sha256",
                                                        position: (14, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "sha256-WmL2sjBUwk9qw8+vHgaufaElQnbDAtOCZHoBXLcvJ18=",
                                                        position: (14, 15),
                                                    },
                                                ],
                                            },
                                        ),
                                    ],
                                    recursive: false,
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "nativeBuildInputs",
                                    position: (17, 3),
                                },
                            ],
                        },
                        BinaryOperation {
                            operator: Concatenation,
                            operands: [
                                List {
                                    elements: [
                                        Variable {
                                            identifier: "pkg-config",
                                            position: (17, 25),
                                        },
                                        Variable {
                                            identifier: "scdoc",
                                            position: (17, 36),
                                        },
                                    ],
                                },
                                FunctionApplication {
                                    function: PropertyAccess {
                                        expression: Variable {
                                            identifier: "lib",
                                            position: (18, 8),
                                        },
                                        attribute_path: AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "optionals",
                                                    position: (18, 12),
                                                },
                                            ],
                                        },
                                        default: None,
                                    },
                                    arguments: [
                                        Variable {
                                            identifier: "luaSupport",
                                            position: (18, 22),
                                        },
                                        List {
                                            elements: [
                                                Variable {
                                                    identifier: "lua",
                                                    position: (18, 35),
                                                },
                                                PropertyAccess {
                                                    expression: Variable {
                                                        identifier: "lua",
                                                        position: (18, 39),
                                                    },
                                                    attribute_path: AttributePath {
                                                        attributes: [
                                                            Raw {
                                                                content: "pkgs",
                                                                position: (18, 43),
                                                            },
                                                            Raw {
                                                                content: "lua-zlib",
                                                                position: (18, 48),
                                                            },
                                                        ],
                                                    },
                                                    default: None,
                                                },
                                            ],
                                        },
                                    ],
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "buildInputs",
                                    position: (19, 3),
                                },
                            ],
                        },
                        BinaryOperation {
                            operator: Concatenation,
                            operands: [
                                List {
                                    elements: [
                                        Variable {
                                            identifier: "openssl",
                                            position: (19, 19),
                                        },
                                        Variable {
                                            identifier: "zlib",
                                            position: (19, 27),
                                        },
                                    ],
                                },
                                FunctionApplication {
                                    function: PropertyAccess {
                                        expression: Variable {
                                            identifier: "lib",
                                            position: (19, 37),
                                        },
                                        attribute_path: AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "optional",
                                                    position: (19, 41),
                                                },
                                            ],
                                        },
                                        default: None,
                                    },
                                    arguments: [
                                        Variable {
                                            identifier: "luaSupport",
                                            position: (19, 50),
                                        },
                                        Variable {
                                            identifier: "lua",
                                            position: (19, 61),
                                        },
                                    ],
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "strictDeps",
                                    position: (20, 3),
                                },
                            ],
                        },
                        Variable {
                            identifier: "true",
                            position: (20, 16),
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "makeFlags",
                                    position: (22, 3),
                                },
                            ],
                        },
                        List {
                            elements: [
                                String {
                                    parts: [
                                        Raw {
                                            content: "CROSS_COMPILE=",
                                            position: (23, 6),
                                        },
                                        Expression {
                                            expression: PropertyAccess {
                                                expression: Variable {
                                                    identifier: "stdenv",
                                                    position: (23, 22),
                                                },
                                                attribute_path: AttributePath {
                                                    attributes: [
                                                        Raw {
                                                            content: "cc",
                                                            position: (23, 29),
                                                        },
                                                        Raw {
                                                            content: "targetPrefix",
                                                            position: (23, 32),
                                                        },
                                                    ],
                                                },
                                                default: None,
                                            },
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "SBINDIR=$(out)/bin",
                                            position: (24, 6),
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "LIBDIR=$(out)/lib",
                                            position: (25, 6),
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "LUA=",
                                            position: (26, 6),
                                        },
                                        Expression {
                                            expression: IfThenElse {
                                                predicate: Variable {
                                                    identifier: "luaSupport",
                                                    position: (26, 15),
                                                },
                                                then: String {
                                                    parts: [
                                                        Raw {
                                                            content: "lua",
                                                            position: (26, 32),
                                                        },
                                                    ],
                                                },
                                                else_: String {
                                                    parts: [
                                                        Raw {
                                                            content: "no",
                                                            position: (26, 43),
                                                        },
                                                    ],
                                                },
                                            },
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "LUA_LIBDIR=$(out)/lib/lua/",
                                            position: (27, 6),
                                        },
                                        Expression {
                                            expression: FunctionApplication {
                                                function: PropertyAccess {
                                                    expression: Variable {
                                                        identifier: "lib",
                                                        position: (27, 34),
                                                    },
                                                    attribute_path: AttributePath {
                                                        attributes: [
                                                            Raw {
                                                                content: "versions",
                                                                position: (27, 38),
                                                            },
                                                            Raw {
                                                                content: "majorMinor",
                                                                position: (27, 47),
                                                            },
                                                        ],
                                                    },
                                                    default: None,
                                                },
                                                arguments: [
                                                    PropertyAccess {
                                                        expression: Variable {
                                                            identifier: "lua",
                                                            position: (27, 58),
                                                        },
                                                        attribute_path: AttributePath {
                                                            attributes: [
                                                                Raw {
                                                                    content: "version",
                                                                    position: (27, 62),
                                                                },
                                                            ],
                                                        },
                                                        default: None,
                                                    },
                                                ],
                                            },
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "MANDIR=$(out)/share/man",
                                            position: (28, 6),
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "DOCDIR=$(out)/share/doc/apk",
                                            position: (29, 6),
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "INCLUDEDIR=$(out)/include",
                                            position: (30, 6),
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "PKGCONFIGDIR=$(out)/lib/pkgconfig",
                                            position: (31, 6),
                                        },
                                    ],
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "NIX_CFLAGS_COMPILE",
                                    position: (34, 3),
                                },
                            ],
                        },
                        List {
                            elements: [
                                String {
                                    parts: [
                                        Raw {
                                            content: "-Wno-error=unused-result",
                                            position: (34, 27),
                                        },
                                    ],
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "enableParallelBuilding",
                                    position: (36, 3),
                                },
                            ],
                        },
                        Variable {
                            identifier: "true",
                            position: (36, 28),
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "meta",
                                    position: (38, 3),
                                },
                            ],
                        },
                        With {
                            expression: Variable {
                                identifier: "lib",
                                position: (38, 15),
                            },
                            target: Map {
                                bindings: [
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "homepage",
                                                    position: (39, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "https://gitlab.alpinelinux.org/alpine/apk-tools",
                                                    position: (39, 17),
                                                },
                                            ],
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "description",
                                                    position: (40, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "Alpine Package Keeper",
                                                    position: (40, 20),
                                                },
                                            ],
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "maintainers",
                                                    position: (41, 5),
                                                },
                                            ],
                                        },
                                        With {
                                            expression: Variable {
                                                identifier: "maintainers",
                                                position: (41, 24),
                                            },
                                            target: List {
                                                elements: [
                                                    Variable {
                                                        identifier: "qyliss",
                                                        position: (41, 39),
                                                    },
                                                ],
                                            },
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "license",
                                                    position: (42, 5),
                                                },
                                            ],
                                        },
                                        PropertyAccess {
                                            expression: Variable {
                                                identifier: "licenses",
                                                position: (42, 15),
                                            },
                                            attribute_path: AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "gpl2Only",
                                                        position: (42, 24),
                                                    },
                                                ],
                                            },
                                            default: None,
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "platforms",
                                                    position: (43, 5),
                                                },
                                            ],
                                        },
                                        PropertyAccess {
                                            expression: Variable {
                                                identifier: "platforms",
                                                position: (43, 17),
                                            },
                                            attribute_path: AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "unix",
                                                        position: (43, 27),
                                                    },
                                                ],
                                            },
                                            default: None,
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "broken",
                                                    position: (44, 5),
                                                },
                                            ],
                                        },
                                        PropertyAccess {
                                            expression: Variable {
                                                identifier: "stdenv",
                                                position: (44, 14),
                                            },
                                            attribute_path: AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "isDarwin",
                                                        position: (44, 21),
                                                    },
                                                ],
                                            },
                                            default: None,
                                        },
                                    ),
                                ],
                                recursive: false,
                            },
                        },
                    ),
                ],
                recursive: true,
            },
        ],
    },
}