---
Function {
    argument: None,
    arguments: FunctionArguments {
        arguments: [
            FunctionArgument {
                identifier: "fetchurl",
                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: "p910nd",
                                    position: (4, 12),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "version",
                                    position: (5, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "0.97",
                                    position: (5, 14),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "src",
                                    position: (7, 3),
                                },
                            ],
                        },
                        FunctionApplication {
                            function: Variable {
                                identifier: "fetchurl",
                                position: (7, 9),
                            },
                            arguments: [
                                Map {
                                    bindings: [
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "sha256",
                                                        position: (8, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "0vy2qf386dif1nqznmy3j953mq7c4lk6j2hgyzkbmfi4msiq1jaa",
                                                        position: (8, 15),
                                                    },
                                                ],
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "url",
                                                        position: (9, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "mirror://sourceforge/p910nd/",
                                                        position: (9, 12),
                                                    },
                                                    Expression {
                                                        expression: Variable {
                                                            identifier: "pname",
                                                            position: (9, 42),
                                                        },
                                                    },
                                                    Raw {
                                                        content: "-",
                                                        position: (9, 48),
                                                    },
                                                    Expression {
                                                        expression: Variable {
                                                            identifier: "version",
                                                            position: (9, 51),
                                                        },
                                                    },
                                                    Raw {
                                                        content: ".tar.bz2",
                                                        position: (9, 59),
                                                    },
                                                ],
                                            },
                                        ),
                                    ],
                                    recursive: false,
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "postPatch",
                                    position: (12, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "substituteInPlace Makefile --replace \"/usr\" \"\"\nsubstituteInPlace Makefile --replace \"gcc\" \"",
                                    position: (13, 1),
                                },
                                Expression {
                                    expression: PropertyAccess {
                                        expression: Variable {
                                            identifier: "stdenv",
                                            position: (14, 51),
                                        },
                                        attribute_path: AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "cc",
                                                    position: (14, 58),
                                                },
                                                Raw {
                                                    content: "targetPrefix",
                                                    position: (14, 61),
                                                },
                                            ],
                                        },
                                        default: None,
                                    },
                                },
                                Raw {
                                    content: "cc\"\n",
                                    position: (14, 74),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "makeFlags",
                                    position: (17, 3),
                                },
                            ],
                        },
                        List {
                            elements: [
                                String {
                                    parts: [
                                        Raw {
                                            content: "DESTDIR=$(out)",
                                            position: (17, 18),
                                        },
                                    ],
                                },
                                String {
                                    parts: [
                                        Raw {
                                            content: "BINDIR=/bin",
                                            position: (17, 35),
                                        },
                                    ],
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "postInstall",
                                    position: (19, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "# Match the man page:\nmv $out/etc/init.d/p910nd{,.sh}\n\n# The legacy init script is useful only (and even then...) as an example:\nmkdir -p $out/share/doc/examples\nmv $out/etc $out/share/doc/examples\n",
                                    position: (20, 1),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "meta",
                                    position: (28, 3),
                                },
                            ],
                        },
                        With {
                            expression: Variable {
                                identifier: "lib",
                                position: (28, 15),
                            },
                            target: Map {
                                bindings: [
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "description",
                                                    position: (29, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "Small printer daemon passing jobs directly to the printer",
                                                    position: (29, 20),
                                                },
                                            ],
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "longDescription",
                                                    position: (30, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "p910nd is a small printer daemon intended for diskless platforms that\ndoes not spool to disk but passes the job directly to the printer.\nNormally a lpr daemon on a spooling host connects to it with a TCP\nconnection on port 910n (where n=0, 1, or 2 for lp0, 1 and 2\nrespectively). p910nd is particularly useful for diskless platforms.\nCommon Unix Printing System (CUPS) supports this protocol, it's called\nthe AppSocket protocol and has the scheme socket://. LPRng also supports\nthis protocol and the syntax is lp=remotehost%9100 in /etc/printcap.\n",
                                                    position: (31, 1),
                                                },
                                            ],
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "homepage",
                                                    position: (40, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "http://p910nd.sourceforge.net/",
                                                    position: (40, 17),
                                                },
                                            ],
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "downloadPage",
                                                    position: (41, 5),
                                                },
                                            ],
                                        },
                                        String {
                                            parts: [
                                                Raw {
                                                    content: "https://sourceforge.net/projects/p910nd/",
                                                    position: (41, 21),
                                                },
                                            ],
                                        },
                                    ),
                                    KeyValue(
                                        AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "license",
                                                    position: (42, 5),
                                                },
                                            ],
                                        },
                                        PropertyAccess {
                                            expression: Variable {
                                                identifier: "licenses",
                                                position: (42, 15),
                                            },
                                            attribute_path: AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "gpl2",
                                                        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,
                                        },
                                    ),
                                ],
                                recursive: false,
                            },
                        },
                    ),
                ],
                recursive: true,
            },
        ],
    },
}