---
Function {
    argument: None,
    arguments: FunctionArguments {
        arguments: [
            FunctionArgument {
                identifier: "fetchFromGitHub",
                default: None,
            },
            FunctionArgument {
                identifier: "stdenv",
                default: None,
            },
            FunctionArgument {
                identifier: "lib",
                default: None,
            },
        ],
        ellipsis: false,
    },
    definition: FunctionApplication {
        function: PropertyAccess {
            expression: Variable {
                identifier: "stdenv",
                position: (3, 1),
            },
            attribute_path: AttributePath {
                attributes: [
                    Raw {
                        content: "mkDerivation",
                        position: (3, 8),
                    },
                ],
            },
            default: None,
        },
        arguments: [
            Map {
                bindings: [
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "pname",
                                    position: (4, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "agrep",
                                    position: (4, 12),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "version",
                                    position: (5, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "3.41.5",
                                    position: (5, 14),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "src",
                                    position: (7, 3),
                                },
                            ],
                        },
                        FunctionApplication {
                            function: Variable {
                                identifier: "fetchFromGitHub",
                                position: (7, 9),
                            },
                            arguments: [
                                Map {
                                    bindings: [
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "owner",
                                                        position: (8, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "Wikinaut",
                                                        position: (8, 14),
                                                    },
                                                ],
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "repo",
                                                        position: (9, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "agrep",
                                                        position: (9, 13),
                                                    },
                                                ],
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "rev",
                                                        position: (11, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "eef20411d605d9d17ead07a0ade75046f2728e21",
                                                        position: (11, 12),
                                                    },
                                                ],
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "sha256",
                                                        position: (12, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "14addnwspdf2mxpqyrw8b84bb2257y43g5ccy4ipgrr91fmxq2sk",
                                                        position: (12, 15),
                                                    },
                                                ],
                                            },
                                        ),
                                    ],
                                    recursive: false,
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "prePatch",
                                    position: (16, 3),
                                },
                            ],
                        },
                        FunctionApplication {
                            function: PropertyAccess {
                                expression: Variable {
                                    identifier: "lib",
                                    position: (16, 14),
                                },
                                attribute_path: AttributePath {
                                    attributes: [
                                        Raw {
                                            content: "optionalString",
                                            position: (16, 18),
                                        },
                                    ],
                                },
                                default: None,
                            },
                            arguments: [
                                BinaryOperation {
                                    operator: LogicalOr,
                                    operands: [
                                        PropertyAccess {
                                            expression: Variable {
                                                identifier: "stdenv",
                                                position: (16, 34),
                                            },
                                            attribute_path: AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "hostPlatform",
                                                        position: (16, 41),
                                                    },
                                                    Raw {
                                                        content: "isMusl",
                                                        position: (16, 54),
                                                    },
                                                ],
                                            },
                                            default: None,
                                        },
                                        PropertyAccess {
                                            expression: Variable {
                                                identifier: "stdenv",
                                                position: (16, 64),
                                            },
                                            attribute_path: AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "isDarwin",
                                                        position: (16, 71),
                                                    },
                                                ],
                                            },
                                            default: None,
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "sed -i '1i#include <sys/stat.h>' checkfil.c newmgrep.c recursiv.c\n",
                                            position: (17, 1),
                                        },
                                    ],
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "installPhase",
                                    position: (19, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "install -Dm 555 agrep -t \"$out/bin\"\ninstall -Dm 444 docs/* -t \"$out/doc\"\n",
                                    position: (20, 1),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "makeFlags",
                                    position: (24, 3),
                                },
                            ],
                        },
                        List {
                            elements: [
                                String {
                                    parts: [
                                        Raw {
                                            content: "CC=",
                                            position: (24, 18),
                                        },
                                        Expression {
                                            expression: PropertyAccess {
                                                expression: Variable {
                                                    identifier: "stdenv",
                                                    position: (24, 23),
                                                },
                                                attribute_path: AttributePath {
                                                    attributes: [
                                                        Raw {
                                                            content: "cc",
                                                            position: (24, 30),
                                                        },
                                                        Raw {
                                                            content: "targetPrefix",
                                                            position: (24, 33),
                                                        },
                                                    ],
                                                },
                                                default: None,
                                            },
                                        },
                                        Raw {
                                            content: "cc",
                                            position: (24, 46),
                                        },
                                    ],
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "meta",
                                    position: (26, 3),
                                },
                            ],
                        },
                        With {
                            expression: Variable {
                                identifier: "lib",
                                position: (26, 15),
                            },
                            target: Map {
                                bindings: [
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "description",
                                                    position: (27, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "Approximate grep for fast fuzzy string searching",
                                                    position: (27, 20),
                                                },
                                            ],
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "homepage",
                                                    position: (28, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "https://www.tgries.de/agrep/",
                                                    position: (28, 17),
                                                },
                                            ],
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "license",
                                                    position: (29, 5),
                                                },
                                            ],
                                        },
                                        PropertyAccess {
                                            expression: Variable {
                                                identifier: "licenses",
                                                position: (29, 15),
                                            },
                                            attribute_path: AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "isc",
                                                        position: (29, 24),
                                                    },
                                                ],
                                            },
                                            default: None,
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "platforms",
                                                    position: (30, 5),
                                                },
                                            ],
                                        },
                                        With {
                                            expression: Variable {
                                                identifier: "platforms",
                                                position: (30, 22),
                                            },
                                            target: BinaryOperation {
                                                operator: Concatenation,
                                                operands: [
                                                    Variable {
                                                        identifier: "linux",
                                                        position: (30, 33),
                                                    },
                                                    Variable {
                                                        identifier: "darwin",
                                                        position: (30, 42),
                                                    },
                                                ],
                                            },
                                        },
                                    ),
                                ],
                                recursive: false,
                            },
                        },
                    ),
                ],
                recursive: false,
            },
        ],
    },
}