---
Function {
    argument: None,
    arguments: FunctionArguments {
        arguments: [
            FunctionArgument {
                identifier: "cppo",
                default: None,
            },
            FunctionArgument {
                identifier: "ocaml",
                default: None,
            },
            FunctionArgument {
                identifier: "buildDunePackage",
                default: None,
            },
            FunctionArgument {
                identifier: "fetchFromGitHub",
                default: None,
            },
            FunctionArgument {
                identifier: "lib",
                default: None,
            },
        ],
        ellipsis: false,
    },
    definition: FunctionApplication {
        function: Variable {
            identifier: "buildDunePackage",
            position: (3, 1),
        },
        arguments: [
            Map {
                bindings: [
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "pname",
                                    position: (4, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "camomile",
                                    position: (4, 12),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "version",
                                    position: (5, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "1.0.2",
                                    position: (5, 14),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "useDune2",
                                    position: (7, 3),
                                },
                            ],
                        },
                        Variable {
                            identifier: "true",
                            position: (7, 14),
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "src",
                                    position: (9, 3),
                                },
                            ],
                        },
                        FunctionApplication {
                            function: Variable {
                                identifier: "fetchFromGitHub",
                                position: (9, 9),
                            },
                            arguments: [
                                Map {
                                    bindings: [
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "owner",
                                                        position: (10, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "yoriyuki",
                                                        position: (10, 14),
                                                    },
                                                ],
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "repo",
                                                        position: (11, 5),
                                                    },
                                                ],
                                            },
                                            Variable {
                                                identifier: "pname",
                                                position: (11, 12),
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "rev",
                                                        position: (12, 5),
                                                    },
                                                ],
                                            },
                                            Variable {
                                                identifier: "version",
                                                position: (12, 11),
                                            },
                                        ),
                                        KeyValue(
                                            AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "sha256",
                                                        position: (13, 5),
                                                    },
                                                ],
                                            },
                                            String {
                                                parts: [
                                                    Raw {
                                                        content: "00i910qjv6bpk0nkafp5fg97isqas0bwjf7m6rz11rsxilpalzad",
                                                        position: (13, 15),
                                                    },
                                                ],
                                            },
                                        ),
                                    ],
                                    recursive: false,
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "nativeBuildInputs",
                                    position: (16, 3),
                                },
                            ],
                        },
                        List {
                            elements: [
                                Variable {
                                    identifier: "cppo",
                                    position: (16, 25),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "strictDeps",
                                    position: (18, 3),
                                },
                            ],
                        },
                        Variable {
                            identifier: "true",
                            position: (18, 16),
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "configurePhase",
                                    position: (20, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "runHook preConfigure\nocaml configure.ml --share $out/share/camomile\nrunHook postConfigure\n",
                                    position: (21, 1),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "postInstall",
                                    position: (26, 3),
                                },
                            ],
                        },
                        String {
                            parts: [
                                Raw {
                                    content: "echo \"version = \\\"",
                                    position: (27, 1),
                                },
                                Expression {
                                    expression: Variable {
                                        identifier: "version",
                                        position: (27, 25),
                                    },
                                },
                                Raw {
                                    content: "\\\"\" >> $out/lib/ocaml/",
                                    position: (27, 33),
                                },
                                Expression {
                                    expression: PropertyAccess {
                                        expression: Variable {
                                            identifier: "ocaml",
                                            position: (27, 57),
                                        },
                                        attribute_path: AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "version",
                                                    position: (27, 63),
                                                },
                                            ],
                                        },
                                        default: None,
                                    },
                                },
                                Raw {
                                    content: "/site-lib/camomile/META\n",
                                    position: (27, 71),
                                },
                            ],
                        },
                    ),
                    KeyValue(
                        AttributePath {
                            attributes: [
                                Raw {
                                    content: "meta",
                                    position: (30, 3),
                                },
                            ],
                        },
                        Map {
                            bindings: [
                                Inherit(
                                    Some(
                                        PropertyAccess {
                                            expression: Variable {
                                                identifier: "src",
                                                position: (31, 14),
                                            },
                                            attribute_path: AttributePath {
                                                attributes: [
                                                    Raw {
                                                        content: "meta",
                                                        position: (31, 18),
                                                    },
                                                ],
                                            },
                                            default: None,
                                        },
                                    ),
                                    [
                                        Raw {
                                            content: "homepage",
                                            position: (31, 24),
                                        },
                                    ],
                                ),
                                KeyValue(
                                    AttributePath {
                                        attributes: [
                                            Raw {
                                                content: "maintainers",
                                                position: (32, 5),
                                            },
                                        ],
                                    },
                                    List {
                                        elements: [
                                            PropertyAccess {
                                                expression: Variable {
                                                    identifier: "lib",
                                                    position: (32, 21),
                                                },
                                                attribute_path: AttributePath {
                                                    attributes: [
                                                        Raw {
                                                            content: "maintainers",
                                                            position: (32, 25),
                                                        },
                                                        Raw {
                                                            content: "vbgl",
                                                            position: (32, 37),
                                                        },
                                                    ],
                                                },
                                                default: None,
                                            },
                                        ],
                                    },
                                ),
                                KeyValue(
                                    AttributePath {
                                        attributes: [
                                            Raw {
                                                content: "license",
                                                position: (33, 5),
                                            },
                                        ],
                                    },
                                    PropertyAccess {
                                        expression: Variable {
                                            identifier: "lib",
                                            position: (33, 15),
                                        },
                                        attribute_path: AttributePath {
                                            attributes: [
                                                Raw {
                                                    content: "licenses",
                                                    position: (33, 19),
                                                },
                                                Raw {
                                                    content: "lgpl21",
                                                    position: (33, 28),
                                                },
                                            ],
                                        },
                                        default: None,
                                    },
                                ),
                                KeyValue(
                                    AttributePath {
                                        attributes: [
                                            Raw {
                                                content: "description",
                                                position: (34, 5),
                                            },
                                        ],
                                    },
                                    String {
                                        parts: [
                                            Raw {
                                                content: "A Unicode library for OCaml",
                                                position: (34, 20),
                                            },
                                        ],
                                    },
                                ),
                            ],
                            recursive: false,
                        },
                    ),
                ],
                recursive: true,
            },
        ],
    },
}