---
Function {
 argument: None,
 arguments: FunctionArguments {
  arguments: [
   FunctionArgument {
    identifier: "nixpkgs",
    default: Some(
     Map {
      bindings: [],
      recursive: false,
      position: (1, 39),
     },
    ),
   },
   FunctionArgument {
    identifier: "pkgs",
    default: Some(
     FunctionApplication {
      function: Variable {
       identifier: "import",
       position: (1, 11),
      },
      arguments: [
       Path {
        parts: [
         Raw {
          content: "../..",
          position: (1, 18),
         },
        ],
       },
       Map {
        bindings: [],
        recursive: false,
        position: (1, 24),
       },
      ],
     },
    ),
   },
  ],
  ellipsis: false,
 },
 definition: LetIn {
  bindings: [
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "locationsXml",
       position: (3, 3),
      },
     ],
    },
    FunctionApplication {
     function: Variable {
      identifier: "import",
      position: (3, 18),
     },
     arguments: [
      Path {
       parts: [
        Raw {
         content: "./lib-function-locations.nix",
         position: (3, 25),
        },
       ],
      },
      Map {
       bindings: [
        Inherit(
         None,
         [
          Raw {
           content: "pkgs",
           position: (3, 64),
          },
          Raw {
           content: "nixpkgs",
           position: (3, 69),
          },
         ],
        ),
       ],
       recursive: false,
       position: (3, 54),
      },
     ],
    },
   ),
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "functionDocs",
       position: (4, 3),
      },
     ],
    },
    FunctionApplication {
     function: Variable {
      identifier: "import",
      position: (4, 18),
     },
     arguments: [
      Path {
       parts: [
        Raw {
         content: "./lib-function-docs.nix",
         position: (4, 25),
        },
       ],
      },
      Map {
       bindings: [
        Inherit(
         None,
         [
          Raw {
           content: "locationsXml",
           position: (4, 59),
          },
          Raw {
           content: "pkgs",
           position: (4, 72),
          },
         ],
        ),
       ],
       recursive: false,
       position: (4, 49),
      },
     ],
    },
   ),
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "version",
       position: (5, 3),
      },
     ],
    },
    PropertyAccess {
     expression: Variable {
      identifier: "pkgs",
      position: (5, 13),
     },
     attribute_path: AttributePath {
      attributes: [
       Raw {
        content: "lib",
        position: (5, 18),
       },
       Raw {
        content: "version",
        position: (5, 22),
       },
      ],
     },
     default: None,
    },
   ),
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "epub-xsl",
       position: (7, 3),
      },
     ],
    },
    FunctionApplication {
     function: PropertyAccess {
      expression: Variable {
       identifier: "pkgs",
       position: (7, 14),
      },
      attribute_path: AttributePath {
       attributes: [
        Raw {
         content: "writeText",
         position: (7, 19),
        },
       ],
      },
      default: None,
     },
     arguments: [
      String {
       parts: [
        Raw {
         content: "epub.xsl",
         position: (7, 30),
        },
       ],
      },
      String {
       parts: [
        Raw {
         content: "<?xml version='1.0'?>\n<xsl:stylesheet\n  xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"\n  version=\"1.0\">\n  <xsl:import href=\"",
         position: (8, 1),
        },
        Expression {
         expression: PropertyAccess {
          expression: Variable {
           identifier: "pkgs",
           position: (12, 27),
          },
          attribute_path: AttributePath {
           attributes: [
            Raw {
             content: "docbook_xsl_ns",
             position: (12, 32),
            },
           ],
          },
          default: None,
         },
        },
        Raw {
         content: "/xml/xsl/docbook/epub/docbook.xsl\" />\n  <xsl:import href=\"",
         position: (12, 47),
        },
        Expression {
         expression: Path {
          parts: [
           Raw {
            content: "./parameters.xml",
            position: (13, 27),
           },
          ],
         },
        },
        Raw {
         content: "\"/>\n</xsl:stylesheet>\n",
         position: (13, 44),
        },
       ],
      },
     ],
    },
   ),
   KeyValue(
    AttributePath {
     attributes: [
      Raw {
       content: "xhtml-xsl",
       position: (17, 3),
      },
     ],
    },
    FunctionApplication {
     function: PropertyAccess {
      expression: Variable {
       identifier: "pkgs",
       position: (17, 15),
      },
      attribute_path: AttributePath {
       attributes: [
        Raw {
         content: "writeText",
         position: (17, 20),
        },
       ],
      },
      default: None,
     },
     arguments: [
      String {
       parts: [
        Raw {
         content: "xhtml.xsl",
         position: (17, 31),
        },
       ],
      },
      String {
       parts: [
        Raw {
         content: "<?xml version='1.0'?>\n<xsl:stylesheet\n  xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"\n  version=\"1.0\">\n  <xsl:import href=\"",
         position: (18, 1),
        },
        Expression {
         expression: PropertyAccess {
          expression: Variable {
           identifier: "pkgs",
           position: (22, 27),
          },
          attribute_path: AttributePath {
           attributes: [
            Raw {
             content: "docbook_xsl_ns",
             position: (22, 32),
            },
           ],
          },
          default: None,
         },
        },
        Raw {
         content: "/xml/xsl/docbook/xhtml/docbook.xsl\" />\n  <xsl:import href=\"",
         position: (22, 47),
        },
        Expression {
         expression: Path {
          parts: [
           Raw {
            content: "./parameters.xml",
            position: (23, 27),
           },
          ],
         },
        },
        Raw {
         content: "\"/>\n</xsl:stylesheet>\n",
         position: (23, 44),
        },
       ],
      },
     ],
    },
   ),
  ],
  target: FunctionApplication {
   function: PropertyAccess {
    expression: Variable {
     identifier: "pkgs",
     position: (26, 4),
    },
    attribute_path: AttributePath {
     attributes: [
      Raw {
       content: "runCommand",
       position: (26, 9),
      },
     ],
    },
    default: None,
   },
   arguments: [
    String {
     parts: [
      Raw {
       content: "doc-support",
       position: (26, 21),
      },
     ],
    },
    Map {
     bindings: [],
     recursive: false,
     position: (26, 34),
    },
    String {
     parts: [
      Raw {
       content: "mkdir result\n(\n  cd result\n  ln -s ",
       position: (28, 1),
      },
      Expression {
       expression: Variable {
        identifier: "locationsXml",
        position: (31, 13),
       },
      },
      Raw {
       content: " ./function-locations.xml\n  ln -s ",
       position: (31, 26),
      },
      Expression {
       expression: Variable {
        identifier: "functionDocs",
        position: (32, 13),
       },
      },
      Raw {
       content: " ./function-docs\n\n  ln -s ",
       position: (32, 26),
      },
      Expression {
       expression: PropertyAccess {
        expression: Variable {
         identifier: "pkgs",
         position: (34, 13),
        },
        attribute_path: AttributePath {
         attributes: [
          Raw {
           content: "docbook5",
           position: (34, 18),
          },
         ],
        },
        default: None,
       },
      },
      Raw {
       content: "/xml/rng/docbook/docbook.rng ./docbook.rng\n  ln -s ",
       position: (34, 27),
      },
      Expression {
       expression: PropertyAccess {
        expression: Variable {
         identifier: "pkgs",
         position: (35, 13),
        },
        attribute_path: AttributePath {
         attributes: [
          Raw {
           content: "docbook_xsl_ns",
           position: (35, 18),
          },
         ],
        },
        default: None,
       },
      },
      Raw {
       content: "/xml/xsl ./xsl\n  ln -s ",
       position: (35, 33),
      },
      Expression {
       expression: Variable {
        identifier: "epub-xsl",
        position: (36, 13),
       },
      },
      Raw {
       content: " ./epub.xsl\n  ln -s ",
       position: (36, 22),
      },
      Expression {
       expression: Variable {
        identifier: "xhtml-xsl",
        position: (37, 13),
       },
      },
      Raw {
       content: " ./xhtml.xsl\n\n  ln -s ",
       position: (37, 23),
      },
      Expression {
       expression: Path {
        parts: [
         Raw {
          content: "../../nixos/doc/xmlformat.conf",
          position: (39, 13),
         },
        ],
       },
      },
      Raw {
       content: " ./xmlformat.conf\n  ln -s ",
       position: (39, 44),
      },
      Expression {
       expression: PropertyAccess {
        expression: Variable {
         identifier: "pkgs",
         position: (40, 13),
        },
        attribute_path: AttributePath {
         attributes: [
          Raw {
           content: "documentation-highlighter",
           position: (40, 18),
          },
         ],
        },
        default: None,
       },
      },
      Raw {
       content: " ./highlightjs\n\n  echo -n \"",
       position: (40, 44),
      },
      Expression {
       expression: Variable {
        identifier: "version",
        position: (42, 16),
       },
      },
      Raw {
       content: "\" > ./version\n)\nmv result $out\n",
       position: (42, 24),
      },
     ],
    },
   ],
  },
  position: (2, 1),
 },
 position: (1, 1),
}