Function(
 Function {
  head: Destructured(
   FunctionHeadDestructured {
    ellipsis: false,
    identifier: None,
    arguments: [
     FunctionHeadDestructuredArgument {
      identifier: "pkgs",
      default: None,
     },
     FunctionHeadDestructuredArgument {
      identifier: "options",
      default: None,
     },
     FunctionHeadDestructuredArgument {
      identifier: "config",
      default: None,
     },
     FunctionHeadDestructuredArgument {
      identifier: "version",
      default: None,
     },
     FunctionHeadDestructuredArgument {
      identifier: "revision",
      default: None,
     },
     FunctionHeadDestructuredArgument {
      identifier: "extraSources",
      default: Some(
       List(
        List {
         elements: [],
         span: Span {
          start: Position {
           line: 6,
           column: 18,
          },
          end: Position {
           line: 6,
           column: 20,
          },
         },
        },
       ),
      ),
     },
     FunctionHeadDestructuredArgument {
      identifier: "baseOptionsJSON",
      default: Some(
       Identifier(
        Identifier {
         id: "null",
         span: Span {
          start: Position {
           line: 7,
           column: 21,
          },
          end: Position {
           line: 7,
           column: 25,
          },
         },
        },
       ),
      ),
     },
     FunctionHeadDestructuredArgument {
      identifier: "warningsAreErrors",
      default: Some(
       Identifier(
        Identifier {
         id: "true",
         span: Span {
          start: Position {
           line: 8,
           column: 23,
          },
          end: Position {
           line: 8,
           column: 27,
          },
         },
        },
       ),
      ),
     },
     FunctionHeadDestructuredArgument {
      identifier: "allowDocBook",
      default: Some(
       Identifier(
        Identifier {
         id: "true",
         span: Span {
          start: Position {
           line: 9,
           column: 18,
          },
          end: Position {
           line: 9,
           column: 22,
          },
         },
        },
       ),
      ),
     },
     FunctionHeadDestructuredArgument {
      identifier: "prefix",
      default: Some(
       Path(
        Path {
         parts: [
          Raw(
           PartRaw {
            content: "../../..",
            span: Span {
             start: Position {
              line: 10,
              column: 12,
             },
             end: Position {
              line: 10,
              column: 20,
             },
            },
           },
          ),
         ],
         span: Span {
          start: Position {
           line: 10,
           column: 12,
          },
          end: Position {
           line: 10,
           column: 20,
          },
         },
        },
       ),
      ),
     },
    ],
   },
  ),
  body: With(
   With {
    expression: Identifier(
     Identifier {
      id: "pkgs",
      span: Span {
       start: Position {
        line: 13,
        column: 6,
       },
       end: Position {
        line: 13,
        column: 10,
       },
      },
     },
    ),
    target: LetIn(
     LetIn {
      bindings: [
       Inherit(
        BindingInherit {
         from: Some(
          Identifier(
           Identifier {
            id: "lib",
            span: Span {
             start: Position {
              line: 16,
              column: 12,
             },
             end: Position {
              line: 16,
              column: 15,
             },
            },
           },
          ),
         ),
         attributes: [
          Raw(
           PartRaw {
            content: "hasPrefix",
            span: Span {
             start: Position {
              line: 16,
              column: 17,
             },
             end: Position {
              line: 16,
              column: 26,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "removePrefix",
            span: Span {
             start: Position {
              line: 16,
              column: 27,
             },
             end: Position {
              line: 16,
              column: 39,
             },
            },
           },
          ),
         ],
         span: Span {
          start: Position {
           line: 15,
           column: 4,
          },
          end: Position {
           line: 16,
           column: 40,
          },
         },
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "lib",
            span: Span {
             start: Position {
              line: 18,
              column: 3,
             },
             end: Position {
              line: 18,
              column: 6,
             },
            },
           },
          ),
         ],
         to: PropertyAccess(
          PropertyAccess {
           expression: Identifier(
            Identifier {
             id: "pkgs",
             span: Span {
              start: Position {
               line: 18,
               column: 9,
              },
              end: Position {
               line: 18,
               column: 13,
              },
             },
            },
           ),
           attribute_path: [
            Raw(
             PartRaw {
              content: "lib",
              span: Span {
               start: Position {
                line: 18,
                column: 14,
               },
               end: Position {
                line: 18,
                column: 17,
               },
              },
             },
            ),
           ],
           default: None,
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "docbook_xsl_ns",
            span: Span {
             start: Position {
              line: 20,
              column: 3,
             },
             end: Position {
              line: 20,
              column: 17,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "pkgs",
               span: Span {
                start: Position {
                 line: 20,
                 column: 20,
                },
                end: Position {
                 line: 20,
                 column: 24,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "docbook-xsl-ns",
                span: Span {
                 start: Position {
                  line: 20,
                  column: 25,
                 },
                 end: Position {
                  line: 20,
                  column: 39,
                 },
                },
               },
              ),
              Raw(
               PartRaw {
                content: "override",
                span: Span {
                 start: Position {
                  line: 20,
                  column: 40,
                 },
                 end: Position {
                  line: 20,
                  column: 48,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            Map(
             Map {
              recursive: false,
              bindings: [
               KeyValue(
                BindingKeyValue {
                 from: [
                  Raw(
                   PartRaw {
                    content: "withManOptDedupPatch",
                    span: Span {
                     start: Position {
                      line: 21,
                      column: 5,
                     },
                     end: Position {
                      line: 21,
                      column: 25,
                     },
                    },
                   },
                  ),
                 ],
                 to: Identifier(
                  Identifier {
                   id: "true",
                   span: Span {
                    start: Position {
                     line: 21,
                     column: 28,
                    },
                    end: Position {
                     line: 21,
                     column: 32,
                    },
                   },
                  },
                 ),
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 20,
                column: 49,
               },
               end: Position {
                line: 22,
                column: 4,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "prefixesToStrip",
            span: Span {
             start: Position {
              line: 30,
              column: 3,
             },
             end: Position {
              line: 30,
              column: 18,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "map",
             span: Span {
              start: Position {
               line: 30,
               column: 21,
              },
              end: Position {
               line: 30,
               column: 24,
              },
             },
            },
           ),
           arguments: [
            Function(
             Function {
              head: Simple(
               FunctionHeadSimple {
                identifier: "p",
               },
              ),
              body: String(
               String_ {
                parts: [
                 Interpolation(
                  PartInterpolation {
                   expression: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "toString",
                       span: Span {
                        start: Position {
                         line: 30,
                         column: 32,
                        },
                        end: Position {
                         line: 30,
                         column: 40,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "p",
                        span: Span {
                         start: Position {
                          line: 30,
                          column: 41,
                         },
                         end: Position {
                          line: 30,
                          column: 42,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/",
                   span: Span {
                    start: Position {
                     line: 30,
                     column: 30,
                    },
                    end: Position {
                     line: 30,
                     column: 44,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 30,
                  column: 29,
                 },
                 end: Position {
                  line: 30,
                  column: 45,
                 },
                },
               },
              ),
              span: Span {
               start: Position {
                line: 30,
                column: 26,
               },
               end: Position {
                line: 30,
                column: 45,
               },
              },
             },
            ),
            BinaryOperation(
             BinaryOperation {
              left: List(
               List {
                elements: [
                 Identifier(
                  Identifier {
                   id: "prefix",
                   span: Span {
                    start: Position {
                     line: 30,
                     column: 50,
                    },
                    end: Position {
                     line: 30,
                     column: 56,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 30,
                  column: 48,
                 },
                 end: Position {
                  line: 30,
                  column: 58,
                 },
                },
               },
              ),
              operator: Concatenation,
              right: Identifier(
               Identifier {
                id: "extraSources",
                span: Span {
                 start: Position {
                  line: 30,
                  column: 62,
                 },
                 end: Position {
                  line: 30,
                  column: 74,
                 },
                },
               },
              ),
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "stripAnyPrefixes",
            span: Span {
             start: Position {
              line: 31,
              column: 3,
             },
             end: Position {
              line: 31,
              column: 19,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "lib",
               span: Span {
                start: Position {
                 line: 31,
                 column: 22,
                },
                end: Position {
                 line: 31,
                 column: 25,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "flip",
                span: Span {
                 start: Position {
                  line: 31,
                  column: 26,
                 },
                 end: Position {
                  line: 31,
                  column: 30,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            FunctionApplication(
             FunctionApplication {
              function: PropertyAccess(
               PropertyAccess {
                expression: Identifier(
                 Identifier {
                  id: "lib",
                  span: Span {
                   start: Position {
                    line: 31,
                    column: 32,
                   },
                   end: Position {
                    line: 31,
                    column: 35,
                   },
                  },
                 },
                ),
                attribute_path: [
                 Raw(
                  PartRaw {
                   content: "foldr",
                   span: Span {
                    start: Position {
                     line: 31,
                     column: 36,
                    },
                    end: Position {
                     line: 31,
                     column: 41,
                    },
                   },
                  },
                 ),
                ],
                default: None,
               },
              ),
              arguments: [
               PropertyAccess(
                PropertyAccess {
                 expression: Identifier(
                  Identifier {
                   id: "lib",
                   span: Span {
                    start: Position {
                     line: 31,
                     column: 42,
                    },
                    end: Position {
                     line: 31,
                     column: 45,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "removePrefix",
                    span: Span {
                     start: Position {
                      line: 31,
                      column: 46,
                     },
                     end: Position {
                      line: 31,
                      column: 58,
                     },
                    },
                   },
                  ),
                 ],
                 default: None,
                },
               ),
              ],
             },
            ),
            Identifier(
             Identifier {
              id: "prefixesToStrip",
              span: Span {
               start: Position {
                line: 31,
                column: 60,
               },
               end: Position {
                line: 31,
                column: 75,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "optionsDoc",
            span: Span {
             start: Position {
              line: 33,
              column: 3,
             },
             end: Position {
              line: 33,
              column: 13,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "buildPackages",
               span: Span {
                start: Position {
                 line: 33,
                 column: 16,
                },
                end: Position {
                 line: 33,
                 column: 29,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "nixosOptionsDoc",
                span: Span {
                 start: Position {
                  line: 33,
                  column: 30,
                 },
                 end: Position {
                  line: 33,
                  column: 45,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            Map(
             Map {
              recursive: false,
              bindings: [
               Inherit(
                BindingInherit {
                 from: None,
                 attributes: [
                  Raw(
                   PartRaw {
                    content: "options",
                    span: Span {
                     start: Position {
                      line: 34,
                      column: 13,
                     },
                     end: Position {
                      line: 34,
                      column: 20,
                     },
                    },
                   },
                  ),
                  Raw(
                   PartRaw {
                    content: "revision",
                    span: Span {
                     start: Position {
                      line: 34,
                      column: 21,
                     },
                     end: Position {
                      line: 34,
                      column: 29,
                     },
                    },
                   },
                  ),
                  Raw(
                   PartRaw {
                    content: "baseOptionsJSON",
                    span: Span {
                     start: Position {
                      line: 34,
                      column: 30,
                     },
                     end: Position {
                      line: 34,
                      column: 45,
                     },
                    },
                   },
                  ),
                  Raw(
                   PartRaw {
                    content: "warningsAreErrors",
                    span: Span {
                     start: Position {
                      line: 34,
                      column: 46,
                     },
                     end: Position {
                      line: 34,
                      column: 63,
                     },
                    },
                   },
                  ),
                  Raw(
                   PartRaw {
                    content: "allowDocBook",
                    span: Span {
                     start: Position {
                      line: 34,
                      column: 64,
                     },
                     end: Position {
                      line: 34,
                      column: 76,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 33,
                   column: 47,
                  },
                  end: Position {
                   line: 34,
                   column: 77,
                  },
                 },
                },
               ),
               KeyValue(
                BindingKeyValue {
                 from: [
                  Raw(
                   PartRaw {
                    content: "transformOptions",
                    span: Span {
                     start: Position {
                      line: 35,
                      column: 5,
                     },
                     end: Position {
                      line: 35,
                      column: 21,
                     },
                    },
                   },
                  ),
                 ],
                 to: Function(
                  Function {
                   head: Simple(
                    FunctionHeadSimple {
                     identifier: "opt",
                    },
                   ),
                   body: BinaryOperation(
                    BinaryOperation {
                     left: Identifier(
                      Identifier {
                       id: "opt",
                       span: Span {
                        start: Position {
                         line: 35,
                         column: 29,
                        },
                        end: Position {
                         line: 35,
                         column: 32,
                        },
                       },
                      },
                     ),
                     operator: Update,
                     right: Map(
                      Map {
                       recursive: false,
                       bindings: [
                        KeyValue(
                         BindingKeyValue {
                          from: [
                           Raw(
                            PartRaw {
                             content: "declarations",
                             span: Span {
                              start: Position {
                               line: 37,
                               column: 7,
                              },
                              end: Position {
                               line: 37,
                               column: 19,
                              },
                             },
                            },
                           ),
                          ],
                          to: FunctionApplication(
                           FunctionApplication {
                            function: Identifier(
                             Identifier {
                              id: "map",
                              span: Span {
                               start: Position {
                                line: 37,
                                column: 22,
                               },
                               end: Position {
                                line: 37,
                                column: 25,
                               },
                              },
                             },
                            ),
                            arguments: [
                             Identifier(
                              Identifier {
                               id: "stripAnyPrefixes",
                               span: Span {
                                start: Position {
                                 line: 37,
                                 column: 26,
                                },
                                end: Position {
                                 line: 37,
                                 column: 42,
                                },
                               },
                              },
                             ),
                             PropertyAccess(
                              PropertyAccess {
                               expression: Identifier(
                                Identifier {
                                 id: "opt",
                                 span: Span {
                                  start: Position {
                                   line: 37,
                                   column: 43,
                                  },
                                  end: Position {
                                   line: 37,
                                   column: 46,
                                  },
                                 },
                                },
                               ),
                               attribute_path: [
                                Raw(
                                 PartRaw {
                                  content: "declarations",
                                  span: Span {
                                   start: Position {
                                    line: 37,
                                    column: 47,
                                   },
                                   end: Position {
                                    line: 37,
                                    column: 59,
                                   },
                                  },
                                 },
                                ),
                               ],
                               default: None,
                              },
                             ),
                            ],
                           },
                          ),
                         },
                        ),
                       ],
                       span: Span {
                        start: Position {
                         line: 35,
                         column: 36,
                        },
                        end: Position {
                         line: 38,
                         column: 6,
                        },
                       },
                      },
                     ),
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 35,
                     column: 24,
                    },
                    end: Position {
                     line: 38,
                     column: 6,
                    },
                   },
                  },
                 ),
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 33,
                column: 46,
               },
               end: Position {
                line: 39,
                column: 4,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "nixos-lib",
            span: Span {
             start: Position {
              line: 41,
              column: 3,
             },
             end: Position {
              line: 41,
              column: 12,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "import",
             span: Span {
              start: Position {
               line: 41,
               column: 15,
              },
              end: Position {
               line: 41,
               column: 21,
              },
             },
            },
           ),
           arguments: [
            Path(
             Path {
              parts: [
               Raw(
                PartRaw {
                 content: "../../lib",
                 span: Span {
                  start: Position {
                   line: 41,
                   column: 22,
                  },
                  end: Position {
                   line: 41,
                   column: 31,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 41,
                column: 22,
               },
               end: Position {
                line: 41,
                column: 31,
               },
              },
             },
            ),
            Map(
             Map {
              recursive: false,
              bindings: [],
              span: Span {
               start: Position {
                line: 41,
                column: 32,
               },
               end: Position {
                line: 41,
                column: 35,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "testOptionsDoc",
            span: Span {
             start: Position {
              line: 43,
              column: 3,
             },
             end: Position {
              line: 43,
              column: 17,
             },
            },
           },
          ),
         ],
         to: LetIn(
          LetIn {
           bindings: [
            KeyValue(
             BindingKeyValue {
              from: [
               Raw(
                PartRaw {
                 content: "eval",
                 span: Span {
                  start: Position {
                   line: 44,
                   column: 7,
                  },
                  end: Position {
                   line: 44,
                   column: 11,
                  },
                 },
                },
               ),
              ],
              to: FunctionApplication(
               FunctionApplication {
                function: PropertyAccess(
                 PropertyAccess {
                  expression: Identifier(
                   Identifier {
                    id: "nixos-lib",
                    span: Span {
                     start: Position {
                      line: 44,
                      column: 14,
                     },
                     end: Position {
                      line: 44,
                      column: 23,
                     },
                    },
                   },
                  ),
                  attribute_path: [
                   Raw(
                    PartRaw {
                     content: "evalTest",
                     span: Span {
                      start: Position {
                       line: 44,
                       column: 24,
                      },
                      end: Position {
                       line: 44,
                       column: 32,
                      },
                     },
                    },
                   ),
                  ],
                  default: None,
                 },
                ),
                arguments: [
                 Map(
                  Map {
                   recursive: false,
                   bindings: [
                    KeyValue(
                     BindingKeyValue {
                      from: [
                       Raw(
                        PartRaw {
                         content: "config",
                         span: Span {
                          start: Position {
                           line: 46,
                           column: 9,
                          },
                          end: Position {
                           line: 46,
                           column: 15,
                          },
                         },
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "node",
                         span: Span {
                          start: Position {
                           line: 46,
                           column: 16,
                          },
                          end: Position {
                           line: 46,
                           column: 20,
                          },
                         },
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "type",
                         span: Span {
                          start: Position {
                           line: 46,
                           column: 21,
                          },
                          end: Position {
                           line: 46,
                           column: 25,
                          },
                         },
                        },
                       ),
                      ],
                      to: PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "lib",
                          span: Span {
                           start: Position {
                            line: 46,
                            column: 28,
                           },
                           end: Position {
                            line: 46,
                            column: 31,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "types",
                           span: Span {
                            start: Position {
                             line: 46,
                             column: 32,
                            },
                            end: Position {
                             line: 46,
                             column: 37,
                            },
                           },
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: "deferredModule",
                           span: Span {
                            start: Position {
                             line: 46,
                             column: 38,
                            },
                            end: Position {
                             line: 46,
                             column: 52,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                     },
                    ),
                    KeyValue(
                     BindingKeyValue {
                      from: [
                       Raw(
                        PartRaw {
                         content: "options",
                         span: Span {
                          start: Position {
                           line: 47,
                           column: 9,
                          },
                          end: Position {
                           line: 47,
                           column: 16,
                          },
                         },
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "_module",
                         span: Span {
                          start: Position {
                           line: 47,
                           column: 17,
                          },
                          end: Position {
                           line: 47,
                           column: 24,
                          },
                         },
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "args",
                         span: Span {
                          start: Position {
                           line: 47,
                           column: 25,
                          },
                          end: Position {
                           line: 47,
                           column: 29,
                          },
                         },
                        },
                       ),
                      ],
                      to: FunctionApplication(
                       FunctionApplication {
                        function: PropertyAccess(
                         PropertyAccess {
                          expression: Identifier(
                           Identifier {
                            id: "lib",
                            span: Span {
                             start: Position {
                              line: 47,
                              column: 32,
                             },
                             end: Position {
                              line: 47,
                              column: 35,
                             },
                            },
                           },
                          ),
                          attribute_path: [
                           Raw(
                            PartRaw {
                             content: "mkOption",
                             span: Span {
                              start: Position {
                               line: 47,
                               column: 36,
                              },
                              end: Position {
                               line: 47,
                               column: 44,
                              },
                             },
                            },
                           ),
                          ],
                          default: None,
                         },
                        ),
                        arguments: [
                         Map(
                          Map {
                           recursive: false,
                           bindings: [
                            KeyValue(
                             BindingKeyValue {
                              from: [
                               Raw(
                                PartRaw {
                                 content: "internal",
                                 span: Span {
                                  start: Position {
                                   line: 47,
                                   column: 47,
                                  },
                                  end: Position {
                                   line: 47,
                                   column: 55,
                                  },
                                 },
                                },
                               ),
                              ],
                              to: Identifier(
                               Identifier {
                                id: "true",
                                span: Span {
                                 start: Position {
                                  line: 47,
                                  column: 58,
                                 },
                                 end: Position {
                                  line: 47,
                                  column: 62,
                                 },
                                },
                               },
                              ),
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 47,
                             column: 45,
                            },
                            end: Position {
                             line: 47,
                             column: 65,
                            },
                           },
                          },
                         ),
                        ],
                       },
                      ),
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 44,
                     column: 33,
                    },
                    end: Position {
                     line: 48,
                     column: 8,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             },
            ),
           ],
           target: FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "buildPackages",
                 span: Span {
                  start: Position {
                   line: 49,
                   column: 8,
                  },
                  end: Position {
                   line: 49,
                   column: 21,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "nixosOptionsDoc",
                  span: Span {
                   start: Position {
                    line: 49,
                    column: 22,
                   },
                   end: Position {
                    line: 49,
                    column: 37,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              Map(
               Map {
                recursive: false,
                bindings: [
                 Inherit(
                  BindingInherit {
                   from: Some(
                    Identifier(
                     Identifier {
                      id: "eval",
                      span: Span {
                       start: Position {
                        line: 50,
                        column: 16,
                       },
                       end: Position {
                        line: 50,
                        column: 20,
                       },
                      },
                     },
                    ),
                   ),
                   attributes: [
                    Raw(
                     PartRaw {
                      content: "options",
                      span: Span {
                       start: Position {
                        line: 50,
                        column: 22,
                       },
                       end: Position {
                        line: 50,
                        column: 29,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 49,
                     column: 39,
                    },
                    end: Position {
                     line: 50,
                     column: 30,
                    },
                   },
                  },
                 ),
                 Inherit(
                  BindingInherit {
                   from: Some(
                    Identifier(
                     Identifier {
                      id: "revision",
                      span: Span {
                       start: Position {
                        line: 51,
                        column: 16,
                       },
                       end: Position {
                        line: 51,
                        column: 24,
                       },
                      },
                     },
                    ),
                   ),
                   attributes: [],
                   span: Span {
                    start: Position {
                     line: 49,
                     column: 39,
                    },
                    end: Position {
                     line: 51,
                     column: 26,
                    },
                   },
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "transformOptions",
                      span: Span {
                       start: Position {
                        line: 52,
                        column: 7,
                       },
                       end: Position {
                        line: 52,
                        column: 23,
                       },
                      },
                     },
                    ),
                   ],
                   to: Function(
                    Function {
                     head: Simple(
                      FunctionHeadSimple {
                       identifier: "opt",
                      },
                     ),
                     body: BinaryOperation(
                      BinaryOperation {
                       left: Identifier(
                        Identifier {
                         id: "opt",
                         span: Span {
                          start: Position {
                           line: 52,
                           column: 31,
                          },
                          end: Position {
                           line: 52,
                           column: 34,
                          },
                         },
                        },
                       ),
                       operator: Update,
                       right: Map(
                        Map {
                         recursive: false,
                         bindings: [
                          KeyValue(
                           BindingKeyValue {
                            from: [
                             Raw(
                              PartRaw {
                               content: "declarations",
                               span: Span {
                                start: Position {
                                 line: 54,
                                 column: 9,
                                },
                                end: Position {
                                 line: 54,
                                 column: 21,
                                },
                               },
                              },
                             ),
                            ],
                            to: FunctionApplication(
                             FunctionApplication {
                              function: Identifier(
                               Identifier {
                                id: "map",
                                span: Span {
                                 start: Position {
                                  line: 55,
                                  column: 11,
                                 },
                                 end: Position {
                                  line: 55,
                                  column: 14,
                                 },
                                },
                               },
                              ),
                              arguments: [
                               Function(
                                Function {
                                 head: Simple(
                                  FunctionHeadSimple {
                                   identifier: "decl",
                                  },
                                 ),
                                 body: IfThenElse(
                                  IfThenElse {
                                   predicate: FunctionApplication(
                                    FunctionApplication {
                                     function: Identifier(
                                      Identifier {
                                       id: "hasPrefix",
                                       span: Span {
                                        start: Position {
                                         line: 57,
                                         column: 18,
                                        },
                                        end: Position {
                                         line: 57,
                                         column: 27,
                                        },
                                       },
                                      },
                                     ),
                                     arguments: [
                                      FunctionApplication(
                                       FunctionApplication {
                                        function: Identifier(
                                         Identifier {
                                          id: "toString",
                                          span: Span {
                                           start: Position {
                                            line: 57,
                                            column: 29,
                                           },
                                           end: Position {
                                            line: 57,
                                            column: 37,
                                           },
                                          },
                                         },
                                        ),
                                        arguments: [
                                         Path(
                                          Path {
                                           parts: [
                                            Raw(
                                             PartRaw {
                                              content: "../../..",
                                              span: Span {
                                               start: Position {
                                                line: 57,
                                                column: 38,
                                               },
                                               end: Position {
                                                line: 57,
                                                column: 46,
                                               },
                                              },
                                             },
                                            ),
                                           ],
                                           span: Span {
                                            start: Position {
                                             line: 57,
                                             column: 38,
                                            },
                                            end: Position {
                                             line: 57,
                                             column: 46,
                                            },
                                           },
                                          },
                                         ),
                                        ],
                                       },
                                      ),
                                      FunctionApplication(
                                       FunctionApplication {
                                        function: Identifier(
                                         Identifier {
                                          id: "toString",
                                          span: Span {
                                           start: Position {
                                            line: 57,
                                            column: 49,
                                           },
                                           end: Position {
                                            line: 57,
                                            column: 57,
                                           },
                                          },
                                         },
                                        ),
                                        arguments: [
                                         Identifier(
                                          Identifier {
                                           id: "decl",
                                           span: Span {
                                            start: Position {
                                             line: 57,
                                             column: 58,
                                            },
                                            end: Position {
                                             line: 57,
                                             column: 62,
                                            },
                                           },
                                          },
                                         ),
                                        ],
                                       },
                                      ),
                                     ],
                                    },
                                   ),
                                   then: LetIn(
                                    LetIn {
                                     bindings: [
                                      KeyValue(
                                       BindingKeyValue {
                                        from: [
                                         Raw(
                                          PartRaw {
                                           content: "subpath",
                                           span: Span {
                                            start: Position {
                                             line: 59,
                                             column: 21,
                                            },
                                            end: Position {
                                             line: 59,
                                             column: 28,
                                            },
                                           },
                                          },
                                         ),
                                        ],
                                        to: FunctionApplication(
                                         FunctionApplication {
                                          function: Identifier(
                                           Identifier {
                                            id: "removePrefix",
                                            span: Span {
                                             start: Position {
                                              line: 59,
                                              column: 31,
                                             },
                                             end: Position {
                                              line: 59,
                                              column: 43,
                                             },
                                            },
                                           },
                                          ),
                                          arguments: [
                                           String(
                                            String_ {
                                             parts: [
                                              Raw(
                                               PartRaw {
                                                content: "/",
                                                span: Span {
                                                 start: Position {
                                                  line: 59,
                                                  column: 45,
                                                 },
                                                 end: Position {
                                                  line: 59,
                                                  column: 46,
                                                 },
                                                },
                                               },
                                              ),
                                             ],
                                             span: Span {
                                              start: Position {
                                               line: 59,
                                               column: 44,
                                              },
                                              end: Position {
                                               line: 59,
                                               column: 47,
                                              },
                                             },
                                            },
                                           ),
                                           FunctionApplication(
                                            FunctionApplication {
                                             function: Identifier(
                                              Identifier {
                                               id: "removePrefix",
                                               span: Span {
                                                start: Position {
                                                 line: 59,
                                                 column: 49,
                                                },
                                                end: Position {
                                                 line: 59,
                                                 column: 61,
                                                },
                                               },
                                              },
                                             ),
                                             arguments: [
                                              FunctionApplication(
                                               FunctionApplication {
                                                function: Identifier(
                                                 Identifier {
                                                  id: "toString",
                                                  span: Span {
                                                   start: Position {
                                                    line: 59,
                                                    column: 63,
                                                   },
                                                   end: Position {
                                                    line: 59,
                                                    column: 71,
                                                   },
                                                  },
                                                 },
                                                ),
                                                arguments: [
                                                 Path(
                                                  Path {
                                                   parts: [
                                                    Raw(
                                                     PartRaw {
                                                      content: "../../..",
                                                      span: Span {
                                                       start: Position {
                                                        line: 59,
                                                        column: 72,
                                                       },
                                                       end: Position {
                                                        line: 59,
                                                        column: 80,
                                                       },
                                                      },
                                                     },
                                                    ),
                                                   ],
                                                   span: Span {
                                                    start: Position {
                                                     line: 59,
                                                     column: 72,
                                                    },
                                                    end: Position {
                                                     line: 59,
                                                     column: 80,
                                                    },
                                                   },
                                                  },
                                                 ),
                                                ],
                                               },
                                              ),
                                              FunctionApplication(
                                               FunctionApplication {
                                                function: Identifier(
                                                 Identifier {
                                                  id: "toString",
                                                  span: Span {
                                                   start: Position {
                                                    line: 59,
                                                    column: 83,
                                                   },
                                                   end: Position {
                                                    line: 59,
                                                    column: 91,
                                                   },
                                                  },
                                                 },
                                                ),
                                                arguments: [
                                                 Identifier(
                                                  Identifier {
                                                   id: "decl",
                                                   span: Span {
                                                    start: Position {
                                                     line: 59,
                                                     column: 92,
                                                    },
                                                    end: Position {
                                                     line: 59,
                                                     column: 96,
                                                    },
                                                   },
                                                  },
                                                 ),
                                                ],
                                               },
                                              ),
                                             ],
                                            },
                                           ),
                                          ],
                                         },
                                        ),
                                       },
                                      ),
                                     ],
                                     target: Map(
                                      Map {
                                       recursive: false,
                                       bindings: [
                                        KeyValue(
                                         BindingKeyValue {
                                          from: [
                                           Raw(
                                            PartRaw {
                                             content: "url",
                                             span: Span {
                                              start: Position {
                                               line: 60,
                                               column: 22,
                                              },
                                              end: Position {
                                               line: 60,
                                               column: 25,
                                              },
                                             },
                                            },
                                           ),
                                          ],
                                          to: String(
                                           String_ {
                                            parts: [
                                             Raw(
                                              PartRaw {
                                               content: "https://github.com/NixOS/nixpkgs/blob/master/",
                                               span: Span {
                                                start: Position {
                                                 line: 60,
                                                 column: 29,
                                                },
                                                end: Position {
                                                 line: 60,
                                                 column: 84,
                                                },
                                               },
                                              },
                                             ),
                                             Interpolation(
                                              PartInterpolation {
                                               expression: Identifier(
                                                Identifier {
                                                 id: "subpath",
                                                 span: Span {
                                                  start: Position {
                                                   line: 60,
                                                   column: 76,
                                                  },
                                                  end: Position {
                                                   line: 60,
                                                   column: 83,
                                                  },
                                                 },
                                                },
                                               ),
                                              },
                                             ),
                                            ],
                                            span: Span {
                                             start: Position {
                                              line: 60,
                                              column: 28,
                                             },
                                             end: Position {
                                              line: 60,
                                              column: 85,
                                             },
                                            },
                                           },
                                          ),
                                         },
                                        ),
                                        KeyValue(
                                         BindingKeyValue {
                                          from: [
                                           Raw(
                                            PartRaw {
                                             content: "name",
                                             span: Span {
                                              start: Position {
                                               line: 60,
                                               column: 87,
                                              },
                                              end: Position {
                                               line: 60,
                                               column: 91,
                                              },
                                             },
                                            },
                                           ),
                                          ],
                                          to: Identifier(
                                           Identifier {
                                            id: "subpath",
                                            span: Span {
                                             start: Position {
                                              line: 60,
                                              column: 94,
                                             },
                                             end: Position {
                                              line: 60,
                                              column: 101,
                                             },
                                            },
                                           },
                                          ),
                                         },
                                        ),
                                       ],
                                       span: Span {
                                        start: Position {
                                         line: 60,
                                         column: 20,
                                        },
                                        end: Position {
                                         line: 60,
                                         column: 104,
                                        },
                                       },
                                      },
                                     ),
                                     span: Span {
                                      start: Position {
                                       line: 59,
                                       column: 17,
                                      },
                                      end: Position {
                                       line: 60,
                                       column: 104,
                                      },
                                     },
                                    },
                                   ),
                                   else_: Identifier(
                                    Identifier {
                                     id: "decl",
                                     span: Span {
                                      start: Position {
                                       line: 61,
                                       column: 20,
                                      },
                                      end: Position {
                                       line: 61,
                                       column: 24,
                                      },
                                     },
                                    },
                                   ),
                                   span: Span {
                                    start: Position {
                                     line: 57,
                                     column: 15,
                                    },
                                    end: Position {
                                     line: 61,
                                     column: 24,
                                    },
                                   },
                                  },
                                 ),
                                 span: Span {
                                  start: Position {
                                   line: 56,
                                   column: 14,
                                  },
                                  end: Position {
                                   line: 61,
                                   column: 24,
                                  },
                                 },
                                },
                               ),
                               PropertyAccess(
                                PropertyAccess {
                                 expression: Identifier(
                                  Identifier {
                                   id: "opt",
                                   span: Span {
                                    start: Position {
                                     line: 62,
                                     column: 13,
                                    },
                                    end: Position {
                                     line: 62,
                                     column: 16,
                                    },
                                   },
                                  },
                                 ),
                                 attribute_path: [
                                  Raw(
                                   PartRaw {
                                    content: "declarations",
                                    span: Span {
                                     start: Position {
                                      line: 62,
                                      column: 17,
                                     },
                                     end: Position {
                                      line: 62,
                                      column: 29,
                                     },
                                    },
                                   },
                                  ),
                                 ],
                                 default: None,
                                },
                               ),
                              ],
                             },
                            ),
                           },
                          ),
                         ],
                         span: Span {
                          start: Position {
                           line: 52,
                           column: 38,
                          },
                          end: Position {
                           line: 63,
                           column: 8,
                          },
                         },
                        },
                       ),
                      },
                     ),
                     span: Span {
                      start: Position {
                       line: 52,
                       column: 26,
                      },
                      end: Position {
                       line: 63,
                       column: 8,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "documentType",
                      span: Span {
                       start: Position {
                        line: 64,
                        column: 7,
                       },
                       end: Position {
                        line: 64,
                        column: 19,
                       },
                      },
                     },
                    ),
                   ],
                   to: String(
                    String_ {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "none",
                        span: Span {
                         start: Position {
                          line: 64,
                          column: 23,
                         },
                         end: Position {
                          line: 64,
                          column: 27,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 64,
                       column: 22,
                      },
                      end: Position {
                       line: 64,
                       column: 28,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "variablelistId",
                      span: Span {
                       start: Position {
                        line: 65,
                        column: 7,
                       },
                       end: Position {
                        line: 65,
                        column: 21,
                       },
                      },
                     },
                    ),
                   ],
                   to: String(
                    String_ {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "test-options-list",
                        span: Span {
                         start: Position {
                          line: 65,
                          column: 25,
                         },
                         end: Position {
                          line: 65,
                          column: 42,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 65,
                       column: 24,
                      },
                      end: Position {
                       line: 65,
                       column: 43,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "optionIdPrefix",
                      span: Span {
                       start: Position {
                        line: 66,
                        column: 7,
                       },
                       end: Position {
                        line: 66,
                        column: 21,
                       },
                      },
                     },
                    ),
                   ],
                   to: String(
                    String_ {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "test-opt-",
                        span: Span {
                         start: Position {
                          line: 66,
                          column: 25,
                         },
                         end: Position {
                          line: 66,
                          column: 34,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 66,
                       column: 24,
                      },
                      end: Position {
                       line: 66,
                       column: 35,
                      },
                     },
                    },
                   ),
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 49,
                  column: 38,
                 },
                 end: Position {
                  line: 67,
                  column: 6,
                 },
                },
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 43,
             column: 20,
            },
            end: Position {
             line: 67,
             column: 6,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "sources",
            span: Span {
             start: Position {
              line: 69,
              column: 3,
             },
             end: Position {
              line: 69,
              column: 10,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "lib",
               span: Span {
                start: Position {
                 line: 69,
                 column: 13,
                },
                end: Position {
                 line: 69,
                 column: 16,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "sourceFilesBySuffices",
                span: Span {
                 start: Position {
                  line: 69,
                  column: 17,
                 },
                 end: Position {
                  line: 69,
                  column: 38,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            Path(
             Path {
              parts: [
               Raw(
                PartRaw {
                 content: "./.",
                 span: Span {
                  start: Position {
                   line: 69,
                   column: 39,
                  },
                  end: Position {
                   line: 69,
                   column: 42,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 69,
                column: 39,
               },
               end: Position {
                line: 69,
                column: 42,
               },
              },
             },
            ),
            List(
             List {
              elements: [
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: ".xml",
                    span: Span {
                     start: Position {
                      line: 69,
                      column: 45,
                     },
                     end: Position {
                      line: 69,
                      column: 49,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 69,
                   column: 44,
                  },
                  end: Position {
                   line: 69,
                   column: 50,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 69,
                column: 43,
               },
               end: Position {
                line: 69,
                column: 51,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "modulesDoc",
            span: Span {
             start: Position {
              line: 71,
              column: 3,
             },
             end: Position {
              line: 71,
              column: 13,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "builtins",
               span: Span {
                start: Position {
                 line: 71,
                 column: 16,
                },
                end: Position {
                 line: 71,
                 column: 24,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "toFile",
                span: Span {
                 start: Position {
                  line: 71,
                  column: 25,
                 },
                 end: Position {
                  line: 71,
                  column: 31,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "modules.xml",
                 span: Span {
                  start: Position {
                   line: 71,
                   column: 33,
                  },
                  end: Position {
                   line: 71,
                   column: 44,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 71,
                column: 32,
               },
               end: Position {
                line: 71,
                column: 45,
               },
              },
             },
            ),
            IndentedString(
             IndentedString {
              parts: [
               Raw(
                PartRaw {
                 content: "<section xmlns:xi=\"http://www.w3.org/2001/XInclude\" id=\"modules\">\n",
                 span: Span {
                  start: Position {
                   line: 72,
                   column: 1,
                  },
                  end: Position {
                   line: 73,
                   column: 5,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: FunctionApplication(
                  FunctionApplication {
                   function: PropertyAccess(
                    PropertyAccess {
                     expression: Identifier(
                      Identifier {
                       id: "lib",
                       span: Span {
                        start: Position {
                         line: 73,
                         column: 8,
                        },
                        end: Position {
                         line: 73,
                         column: 11,
                        },
                       },
                      },
                     ),
                     attribute_path: [
                      Raw(
                       PartRaw {
                        content: "concatMapStrings",
                        span: Span {
                         start: Position {
                          line: 73,
                          column: 12,
                         },
                         end: Position {
                          line: 73,
                          column: 28,
                         },
                        },
                       },
                      ),
                     ],
                     default: None,
                    },
                   ),
                   arguments: [
                    Function(
                     Function {
                      head: Simple(
                       FunctionHeadSimple {
                        identifier: "path",
                       },
                      ),
                      body: IndentedString(
                       IndentedString {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "<xi:include href=\"",
                           span: Span {
                            start: Position {
                             line: 74,
                             column: 1,
                            },
                            end: Position {
                             line: 74,
                             column: 25,
                            },
                           },
                          },
                         ),
                         Interpolation(
                          PartInterpolation {
                           expression: Identifier(
                            Identifier {
                             id: "path",
                             span: Span {
                              start: Position {
                               line: 74,
                               column: 27,
                              },
                              end: Position {
                               line: 74,
                               column: 31,
                              },
                             },
                            },
                           ),
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: "\" />\n",
                           span: Span {
                            start: Position {
                             line: 74,
                             column: 1,
                            },
                            end: Position {
                             line: 75,
                             column: 5,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 73,
                          column: 36,
                         },
                         end: Position {
                          line: 75,
                          column: 7,
                         },
                        },
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 73,
                        column: 30,
                       },
                       end: Position {
                        line: 75,
                        column: 7,
                       },
                      },
                     },
                    ),
                    FunctionApplication(
                     FunctionApplication {
                      function: PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "lib",
                          span: Span {
                           start: Position {
                            line: 75,
                            column: 10,
                           },
                           end: Position {
                            line: 75,
                            column: 13,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "catAttrs",
                           span: Span {
                            start: Position {
                             line: 75,
                             column: 14,
                            },
                            end: Position {
                             line: 75,
                             column: 22,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                      arguments: [
                       String(
                        String_ {
                         parts: [
                          Raw(
                           PartRaw {
                            content: "value",
                            span: Span {
                             start: Position {
                              line: 75,
                              column: 24,
                             },
                             end: Position {
                              line: 75,
                              column: 29,
                             },
                            },
                           },
                          ),
                         ],
                         span: Span {
                          start: Position {
                           line: 75,
                           column: 23,
                          },
                          end: Position {
                           line: 75,
                           column: 30,
                          },
                         },
                        },
                       ),
                       PropertyAccess(
                        PropertyAccess {
                         expression: Identifier(
                          Identifier {
                           id: "config",
                           span: Span {
                            start: Position {
                             line: 75,
                             column: 31,
                            },
                            end: Position {
                             line: 75,
                             column: 37,
                            },
                           },
                          },
                         ),
                         attribute_path: [
                          Raw(
                           PartRaw {
                            content: "meta",
                            span: Span {
                             start: Position {
                              line: 75,
                              column: 38,
                             },
                             end: Position {
                              line: 75,
                              column: 42,
                             },
                            },
                           },
                          ),
                          Raw(
                           PartRaw {
                            content: "doc",
                            span: Span {
                             start: Position {
                              line: 75,
                              column: 43,
                             },
                             end: Position {
                              line: 75,
                              column: 46,
                             },
                            },
                           },
                          ),
                         ],
                         default: None,
                        },
                       ),
                      ],
                     },
                    ),
                   ],
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: "\n</section>\n",
                 span: Span {
                  start: Position {
                   line: 72,
                   column: 1,
                  },
                  end: Position {
                   line: 77,
                   column: 3,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 71,
                column: 46,
               },
               end: Position {
                line: 77,
                column: 5,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "generatedSources",
            span: Span {
             start: Position {
              line: 79,
              column: 3,
             },
             end: Position {
              line: 79,
              column: 19,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "runCommand",
             span: Span {
              start: Position {
               line: 79,
               column: 22,
              },
              end: Position {
               line: 79,
               column: 32,
              },
             },
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "generated-docbook",
                 span: Span {
                  start: Position {
                   line: 79,
                   column: 34,
                  },
                  end: Position {
                   line: 79,
                   column: 51,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 79,
                column: 33,
               },
               end: Position {
                line: 79,
                column: 52,
               },
              },
             },
            ),
            Map(
             Map {
              recursive: false,
              bindings: [],
              span: Span {
               start: Position {
                line: 79,
                column: 53,
               },
               end: Position {
                line: 79,
                column: 55,
               },
              },
             },
            ),
            IndentedString(
             IndentedString {
              parts: [
               Raw(
                PartRaw {
                 content: "mkdir $out\nln -s ",
                 span: Span {
                  start: Position {
                   line: 80,
                   column: 1,
                  },
                  end: Position {
                   line: 81,
                   column: 11,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: Identifier(
                  Identifier {
                   id: "modulesDoc",
                   span: Span {
                    start: Position {
                     line: 81,
                     column: 13,
                    },
                    end: Position {
                     line: 81,
                     column: 23,
                    },
                   },
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: " $out/modules.xml\nln -s ",
                 span: Span {
                  start: Position {
                   line: 80,
                   column: 1,
                  },
                  end: Position {
                   line: 82,
                   column: 11,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: PropertyAccess(
                  PropertyAccess {
                   expression: Identifier(
                    Identifier {
                     id: "optionsDoc",
                     span: Span {
                      start: Position {
                       line: 82,
                       column: 13,
                      },
                      end: Position {
                       line: 82,
                       column: 23,
                      },
                     },
                    },
                   ),
                   attribute_path: [
                    Raw(
                     PartRaw {
                      content: "optionsDocBook",
                      span: Span {
                       start: Position {
                        line: 82,
                        column: 24,
                       },
                       end: Position {
                        line: 82,
                        column: 38,
                       },
                      },
                     },
                    ),
                   ],
                   default: None,
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: " $out/options-db.xml\nln -s ",
                 span: Span {
                  start: Position {
                   line: 80,
                   column: 1,
                  },
                  end: Position {
                   line: 83,
                   column: 11,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: PropertyAccess(
                  PropertyAccess {
                   expression: Identifier(
                    Identifier {
                     id: "testOptionsDoc",
                     span: Span {
                      start: Position {
                       line: 83,
                       column: 13,
                      },
                      end: Position {
                       line: 83,
                       column: 27,
                      },
                     },
                    },
                   ),
                   attribute_path: [
                    Raw(
                     PartRaw {
                      content: "optionsDocBook",
                      span: Span {
                       start: Position {
                        line: 83,
                        column: 28,
                       },
                       end: Position {
                        line: 83,
                        column: 42,
                       },
                      },
                     },
                    ),
                   ],
                   default: None,
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: " $out/test-options-db.xml\nprintf \"%s\" \"",
                 span: Span {
                  start: Position {
                   line: 80,
                   column: 1,
                  },
                  end: Position {
                   line: 84,
                   column: 18,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: Identifier(
                  Identifier {
                   id: "version",
                   span: Span {
                    start: Position {
                     line: 84,
                     column: 20,
                    },
                    end: Position {
                     line: 84,
                     column: 27,
                    },
                   },
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: "\" > $out/version\n",
                 span: Span {
                  start: Position {
                   line: 80,
                   column: 1,
                  },
                  end: Position {
                   line: 85,
                   column: 3,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 79,
                column: 56,
               },
               end: Position {
                line: 85,
                column: 5,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "copySources",
            span: Span {
             start: Position {
              line: 87,
              column: 3,
             },
             end: Position {
              line: 87,
              column: 14,
             },
            },
           },
          ),
         ],
         to: IndentedString(
          IndentedString {
           parts: [
            Raw(
             PartRaw {
              content: "cp -prd $sources/* . # */\nln -s ",
              span: Span {
               start: Position {
                line: 89,
                column: 1,
               },
               end: Position {
                line: 90,
                column: 13,
               },
              },
             },
            ),
            Interpolation(
             PartInterpolation {
              expression: Identifier(
               Identifier {
                id: "generatedSources",
                span: Span {
                 start: Position {
                  line: 90,
                  column: 15,
                 },
                 end: Position {
                  line: 90,
                  column: 31,
                 },
                },
               },
              ),
             },
            ),
            Raw(
             PartRaw {
              content: " ./generated\nchmod -R u+w .\n",
              span: Span {
               start: Position {
                line: 89,
                column: 1,
               },
               end: Position {
                line: 92,
                column: 5,
               },
              },
             },
            ),
           ],
           span: Span {
            start: Position {
             line: 88,
             column: 5,
            },
            end: Position {
             line: 92,
             column: 7,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "toc",
            span: Span {
             start: Position {
              line: 94,
              column: 3,
             },
             end: Position {
              line: 94,
              column: 6,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "builtins",
               span: Span {
                start: Position {
                 line: 94,
                 column: 9,
                },
                end: Position {
                 line: 94,
                 column: 17,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "toFile",
                span: Span {
                 start: Position {
                  line: 94,
                  column: 18,
                 },
                 end: Position {
                  line: 94,
                  column: 24,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "toc.xml",
                 span: Span {
                  start: Position {
                   line: 94,
                   column: 26,
                  },
                  end: Position {
                   line: 94,
                   column: 33,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 94,
                column: 25,
               },
               end: Position {
                line: 94,
                column: 34,
               },
              },
             },
            ),
            IndentedString(
             IndentedString {
              parts: [
               Raw(
                PartRaw {
                 content: "<toc role=\"chunk-toc\">\n  <d:tocentry xmlns:d=\"http://docbook.org/ns/docbook\" linkend=\"book-nixos-manual\"><?dbhtml filename=\"index.html\"?>\n    <d:tocentry linkend=\"ch-options\"><?dbhtml filename=\"options.html\"?></d:tocentry>\n    <d:tocentry linkend=\"ch-release-notes\"><?dbhtml filename=\"release-notes.html\"?></d:tocentry>\n  </d:tocentry>\n</toc>\n",
                 span: Span {
                  start: Position {
                   line: 96,
                   column: 1,
                  },
                  end: Position {
                   line: 102,
                   column: 5,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 95,
                column: 5,
               },
               end: Position {
                line: 102,
                column: 7,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "manualXsltprocOptions",
            span: Span {
             start: Position {
              line: 104,
              column: 3,
             },
             end: Position {
              line: 104,
              column: 24,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "toString",
             span: Span {
              start: Position {
               line: 104,
               column: 27,
              },
              end: Position {
               line: 104,
               column: 35,
              },
             },
            },
           ),
           arguments: [
            List(
             List {
              elements: [
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--param section.autolabel 1",
                    span: Span {
                     start: Position {
                      line: 105,
                      column: 6,
                     },
                     end: Position {
                      line: 105,
                      column: 33,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 105,
                   column: 5,
                  },
                  end: Position {
                   line: 105,
                   column: 34,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--param section.label.includes.component.label 1",
                    span: Span {
                     start: Position {
                      line: 106,
                      column: 6,
                     },
                     end: Position {
                      line: 106,
                      column: 54,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 106,
                   column: 5,
                  },
                  end: Position {
                   line: 106,
                   column: 55,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--stringparam html.stylesheet 'style.css overrides.css highlightjs/mono-blue.css'",
                    span: Span {
                     start: Position {
                      line: 107,
                      column: 6,
                     },
                     end: Position {
                      line: 107,
                      column: 87,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 107,
                   column: 5,
                  },
                  end: Position {
                   line: 107,
                   column: 88,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--stringparam html.script './highlightjs/highlight.pack.js ./highlightjs/loader.js'",
                    span: Span {
                     start: Position {
                      line: 108,
                      column: 6,
                     },
                     end: Position {
                      line: 108,
                      column: 89,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 108,
                   column: 5,
                  },
                  end: Position {
                   line: 108,
                   column: 90,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--param xref.with.number.and.title 1",
                    span: Span {
                     start: Position {
                      line: 109,
                      column: 6,
                     },
                     end: Position {
                      line: 109,
                      column: 42,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 109,
                   column: 5,
                  },
                  end: Position {
                   line: 109,
                   column: 43,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--param toc.section.depth 0",
                    span: Span {
                     start: Position {
                      line: 110,
                      column: 6,
                     },
                     end: Position {
                      line: 110,
                      column: 33,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 110,
                   column: 5,
                  },
                  end: Position {
                   line: 110,
                   column: 34,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--param generate.consistent.ids 1",
                    span: Span {
                     start: Position {
                      line: 111,
                      column: 6,
                     },
                     end: Position {
                      line: 111,
                      column: 39,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 111,
                   column: 5,
                  },
                  end: Position {
                   line: 111,
                   column: 40,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--stringparam admon.style ''",
                    span: Span {
                     start: Position {
                      line: 112,
                      column: 6,
                     },
                     end: Position {
                      line: 112,
                      column: 34,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 112,
                   column: 5,
                  },
                  end: Position {
                   line: 112,
                   column: 35,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--stringparam callout.graphics.extension .svg",
                    span: Span {
                     start: Position {
                      line: 113,
                      column: 6,
                     },
                     end: Position {
                      line: 113,
                      column: 51,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 113,
                   column: 5,
                  },
                  end: Position {
                   line: 113,
                   column: 52,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--stringparam current.docid manual",
                    span: Span {
                     start: Position {
                      line: 114,
                      column: 6,
                     },
                     end: Position {
                      line: 114,
                      column: 40,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 114,
                   column: 5,
                  },
                  end: Position {
                   line: 114,
                   column: 41,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--param chunk.section.depth 0",
                    span: Span {
                     start: Position {
                      line: 115,
                      column: 6,
                     },
                     end: Position {
                      line: 115,
                      column: 35,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 115,
                   column: 5,
                  },
                  end: Position {
                   line: 115,
                   column: 36,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--param chunk.first.sections 1",
                    span: Span {
                     start: Position {
                      line: 116,
                      column: 6,
                     },
                     end: Position {
                      line: 116,
                      column: 36,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 116,
                   column: 5,
                  },
                  end: Position {
                   line: 116,
                   column: 37,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--param use.id.as.filename 1",
                    span: Span {
                     start: Position {
                      line: 117,
                      column: 6,
                     },
                     end: Position {
                      line: 117,
                      column: 34,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 117,
                   column: 5,
                  },
                  end: Position {
                   line: 117,
                   column: 35,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--stringparam chunk.toc ",
                    span: Span {
                     start: Position {
                      line: 118,
                      column: 6,
                     },
                     end: Position {
                      line: 118,
                      column: 36,
                     },
                    },
                   },
                  ),
                  Interpolation(
                   PartInterpolation {
                    expression: Identifier(
                     Identifier {
                      id: "toc",
                      span: Span {
                       start: Position {
                        line: 118,
                        column: 32,
                       },
                       end: Position {
                        line: 118,
                        column: 35,
                       },
                      },
                     },
                    ),
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 118,
                   column: 5,
                  },
                  end: Position {
                   line: 118,
                   column: 37,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 104,
                column: 36,
               },
               end: Position {
                line: 119,
                column: 4,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "manual-combined",
            span: Span {
             start: Position {
              line: 121,
              column: 3,
             },
             end: Position {
              line: 121,
              column: 18,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "runCommand",
             span: Span {
              start: Position {
               line: 121,
               column: 21,
              },
              end: Position {
               line: 121,
               column: 31,
              },
             },
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "nixos-manual-combined",
                 span: Span {
                  start: Position {
                   line: 121,
                   column: 33,
                  },
                  end: Position {
                   line: 121,
                   column: 54,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 121,
                column: 32,
               },
               end: Position {
                line: 121,
                column: 55,
               },
              },
             },
            ),
            Map(
             Map {
              recursive: false,
              bindings: [
               Inherit(
                BindingInherit {
                 from: None,
                 attributes: [
                  Raw(
                   PartRaw {
                    content: "sources",
                    span: Span {
                     start: Position {
                      line: 122,
                      column: 15,
                     },
                     end: Position {
                      line: 122,
                      column: 22,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 122,
                   column: 6,
                  },
                  end: Position {
                   line: 122,
                   column: 23,
                  },
                 },
                },
               ),
               KeyValue(
                BindingKeyValue {
                 from: [
                  Raw(
                   PartRaw {
                    content: "nativeBuildInputs",
                    span: Span {
                     start: Position {
                      line: 123,
                      column: 7,
                     },
                     end: Position {
                      line: 123,
                      column: 24,
                     },
                    },
                   },
                  ),
                 ],
                 to: List(
                  List {
                   elements: [
                    PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "buildPackages",
                        span: Span {
                         start: Position {
                          line: 123,
                          column: 29,
                         },
                         end: Position {
                          line: 123,
                          column: 42,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "libxml2",
                         span: Span {
                          start: Position {
                           line: 123,
                           column: 43,
                          },
                          end: Position {
                           line: 123,
                           column: 50,
                          },
                         },
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "bin",
                         span: Span {
                          start: Position {
                           line: 123,
                           column: 51,
                          },
                          end: Position {
                           line: 123,
                           column: 54,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "buildPackages",
                        span: Span {
                         start: Position {
                          line: 123,
                          column: 55,
                         },
                         end: Position {
                          line: 123,
                          column: 68,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "libxslt",
                         span: Span {
                          start: Position {
                           line: 123,
                           column: 69,
                          },
                          end: Position {
                           line: 123,
                           column: 76,
                          },
                         },
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "bin",
                         span: Span {
                          start: Position {
                           line: 123,
                           column: 77,
                          },
                          end: Position {
                           line: 123,
                           column: 80,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 123,
                     column: 27,
                    },
                    end: Position {
                     line: 123,
                     column: 82,
                    },
                   },
                  },
                 ),
                },
               ),
               KeyValue(
                BindingKeyValue {
                 from: [
                  Raw(
                   PartRaw {
                    content: "meta",
                    span: Span {
                     start: Position {
                      line: 124,
                      column: 7,
                     },
                     end: Position {
                      line: 124,
                      column: 11,
                     },
                    },
                   },
                  ),
                  Raw(
                   PartRaw {
                    content: "description",
                    span: Span {
                     start: Position {
                      line: 124,
                      column: 12,
                     },
                     end: Position {
                      line: 124,
                      column: 23,
                     },
                    },
                   },
                  ),
                 ],
                 to: String(
                  String_ {
                   parts: [
                    Raw(
                     PartRaw {
                      content: "The NixOS manual as plain docbook XML",
                      span: Span {
                       start: Position {
                        line: 124,
                        column: 27,
                       },
                       end: Position {
                        line: 124,
                        column: 64,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 124,
                     column: 26,
                    },
                    end: Position {
                     line: 124,
                     column: 65,
                    },
                   },
                  },
                 ),
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 122,
                column: 5,
               },
               end: Position {
                line: 125,
                column: 6,
               },
              },
             },
            ),
            IndentedString(
             IndentedString {
              parts: [
               Raw(
                PartRaw {
                 content: "",
                 span: Span {
                  start: Position {
                   line: 127,
                   column: 1,
                  },
                  end: Position {
                   line: 127,
                   column: 7,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: Identifier(
                  Identifier {
                   id: "copySources",
                   span: Span {
                    start: Position {
                     line: 127,
                     column: 9,
                    },
                    end: Position {
                     line: 127,
                     column: 20,
                    },
                   },
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: "\n\nxmllint --xinclude --output ./manual-combined.xml ./manual.xml\nxmllint --xinclude --noxincludenode \\\n   --output ./man-pages-combined.xml ./man-pages.xml\n\n# outputs the context of an xmllint error output\n# LEN lines around the failing line are printed\nfunction context {\n  # length of context\n  local LEN=6\n  # lines to print before error line\n  local BEFORE=4\n\n  # xmllint output lines are:\n  # file.xml:1234: there was an error on line 1234\n  while IFS=':' read -r file line rest; do\n    echo\n    if [[ -n \"$rest\" ]]; then\n      echo \"$file:$line:$rest\"\n      local FROM=$(($line>$BEFORE ? $line - $BEFORE : 1))\n      # number lines & filter context\n      nl --body-numbering=a \"$file\" | sed -n \"$FROM,+$LEN p\"\n    else\n      if [[ -n \"$line\" ]]; then\n        echo \"$file:$line\"\n      else\n        echo \"$file\"\n      fi\n    fi\n  done\n}\n\nfunction lintrng {\n  xmllint --debug --noout --nonet \\\n    --relaxng ",
                 span: Span {
                  start: Position {
                   line: 127,
                   column: 1,
                  },
                  end: Position {
                   line: 162,
                   column: 21,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: Identifier(
                  Identifier {
                   id: "docbook5",
                   span: Span {
                    start: Position {
                     line: 162,
                     column: 23,
                    },
                    end: Position {
                     line: 162,
                     column: 31,
                    },
                   },
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: "/xml/rng/docbook/docbook.rng \\\n    \"$1\" \\\n    2>&1 | context 1>&2\n    # ^ redirect assumes xmllint doesn’t print to stdout\n}\n\nmkdir $out\ncp manual-combined.xml $out/\ncp man-pages-combined.xml $out/\n\nlintrng $out/manual-combined.xml\nlintrng $out/man-pages-combined.xml\n",
                 span: Span {
                  start: Position {
                   line: 127,
                   column: 1,
                  },
                  end: Position {
                   line: 174,
                   column: 5,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 126,
                column: 5,
               },
               end: Position {
                line: 174,
                column: 7,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "olinkDB",
            span: Span {
             start: Position {
              line: 176,
              column: 3,
             },
             end: Position {
              line: 176,
              column: 10,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "runCommand",
             span: Span {
              start: Position {
               line: 176,
               column: 13,
              },
              end: Position {
               line: 176,
               column: 23,
              },
             },
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "manual-olinkdb",
                 span: Span {
                  start: Position {
                   line: 176,
                   column: 25,
                  },
                  end: Position {
                   line: 176,
                   column: 39,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 176,
                column: 24,
               },
               end: Position {
                line: 176,
                column: 40,
               },
              },
             },
            ),
            Map(
             Map {
              recursive: false,
              bindings: [
               Inherit(
                BindingInherit {
                 from: None,
                 attributes: [
                  Raw(
                   PartRaw {
                    content: "sources",
                    span: Span {
                     start: Position {
                      line: 177,
                      column: 15,
                     },
                     end: Position {
                      line: 177,
                      column: 22,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 177,
                   column: 6,
                  },
                  end: Position {
                   line: 177,
                   column: 23,
                  },
                 },
                },
               ),
               KeyValue(
                BindingKeyValue {
                 from: [
                  Raw(
                   PartRaw {
                    content: "nativeBuildInputs",
                    span: Span {
                     start: Position {
                      line: 178,
                      column: 7,
                     },
                     end: Position {
                      line: 178,
                      column: 24,
                     },
                    },
                   },
                  ),
                 ],
                 to: List(
                  List {
                   elements: [
                    PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "buildPackages",
                        span: Span {
                         start: Position {
                          line: 178,
                          column: 29,
                         },
                         end: Position {
                          line: 178,
                          column: 42,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "libxml2",
                         span: Span {
                          start: Position {
                           line: 178,
                           column: 43,
                          },
                          end: Position {
                           line: 178,
                           column: 50,
                          },
                         },
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "bin",
                         span: Span {
                          start: Position {
                           line: 178,
                           column: 51,
                          },
                          end: Position {
                           line: 178,
                           column: 54,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "buildPackages",
                        span: Span {
                         start: Position {
                          line: 178,
                          column: 55,
                         },
                         end: Position {
                          line: 178,
                          column: 68,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "libxslt",
                         span: Span {
                          start: Position {
                           line: 178,
                           column: 69,
                          },
                          end: Position {
                           line: 178,
                           column: 76,
                          },
                         },
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "bin",
                         span: Span {
                          start: Position {
                           line: 178,
                           column: 77,
                          },
                          end: Position {
                           line: 178,
                           column: 80,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 178,
                     column: 27,
                    },
                    end: Position {
                     line: 178,
                     column: 82,
                    },
                   },
                  },
                 ),
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 177,
                column: 5,
               },
               end: Position {
                line: 179,
                column: 6,
               },
              },
             },
            ),
            IndentedString(
             IndentedString {
              parts: [
               Raw(
                PartRaw {
                 content: "xsltproc \\\n  ",
                 span: Span {
                  start: Position {
                   line: 181,
                   column: 1,
                  },
                  end: Position {
                   line: 182,
                   column: 9,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: Identifier(
                  Identifier {
                   id: "manualXsltprocOptions",
                   span: Span {
                    start: Position {
                     line: 182,
                     column: 11,
                    },
                    end: Position {
                     line: 182,
                     column: 32,
                    },
                   },
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: " \\\n  --stringparam collect.xref.targets only \\\n  --stringparam targets.filename \"$out/manual.db\" \\\n  --nonet \\\n  ",
                 span: Span {
                  start: Position {
                   line: 181,
                   column: 1,
                  },
                  end: Position {
                   line: 186,
                   column: 9,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: Identifier(
                  Identifier {
                   id: "docbook_xsl_ns",
                   span: Span {
                    start: Position {
                     line: 186,
                     column: 11,
                    },
                    end: Position {
                     line: 186,
                     column: 25,
                    },
                   },
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: "/xml/xsl/docbook/xhtml/chunktoc.xsl \\\n  ",
                 span: Span {
                  start: Position {
                   line: 181,
                   column: 1,
                  },
                  end: Position {
                   line: 187,
                   column: 9,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: Identifier(
                  Identifier {
                   id: "manual-combined",
                   span: Span {
                    start: Position {
                     line: 187,
                     column: 11,
                    },
                    end: Position {
                     line: 187,
                     column: 26,
                    },
                   },
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: "/manual-combined.xml\n\ncat > \"$out/olinkdb.xml\" <<EOF\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE targetset SYSTEM\n  \"file://",
                 span: Span {
                  start: Position {
                   line: 181,
                   column: 1,
                  },
                  end: Position {
                   line: 192,
                   column: 17,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: Identifier(
                  Identifier {
                   id: "docbook_xsl_ns",
                   span: Span {
                    start: Position {
                     line: 192,
                     column: 19,
                    },
                    end: Position {
                     line: 192,
                     column: 33,
                    },
                   },
                  },
                 ),
                },
               ),
               Raw(
                PartRaw {
                 content: "/xml/xsl/docbook/common/targetdatabase.dtd\" [\n  <!ENTITY manualtargets SYSTEM \"file://$out/manual.db\">\n]>\n<targetset>\n  <targetsetinfo>\n      Allows for cross-referencing olinks between the manpages\n      and manual.\n  </targetsetinfo>\n\n  <document targetdoc=\"manual\">&manualtargets;</document>\n</targetset>\nEOF\n",
                 span: Span {
                  start: Position {
                   line: 181,
                   column: 1,
                  },
                  end: Position {
                   line: 204,
                   column: 5,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 180,
                column: 5,
               },
               end: Position {
                line: 204,
                column: 7,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
      ],
      target: Map(
       Map {
        recursive: true,
        bindings: [
         Inherit(
          BindingInherit {
           from: None,
           attributes: [
            Raw(
             PartRaw {
              content: "generatedSources",
              span: Span {
               start: Position {
                line: 207,
                column: 11,
               },
               end: Position {
                line: 207,
                column: 27,
               },
              },
             },
            ),
           ],
           span: Span {
            start: Position {
             line: 206,
             column: 9,
            },
            end: Position {
             line: 207,
             column: 28,
            },
           },
          },
         ),
         Inherit(
          BindingInherit {
           from: Some(
            Identifier(
             Identifier {
              id: "optionsDoc",
              span: Span {
               start: Position {
                line: 209,
                column: 12,
               },
               end: Position {
                line: 209,
                column: 22,
               },
              },
             },
            ),
           ),
           attributes: [
            Raw(
             PartRaw {
              content: "optionsJSON",
              span: Span {
               start: Position {
                line: 209,
                column: 24,
               },
               end: Position {
                line: 209,
                column: 35,
               },
              },
             },
            ),
            Raw(
             PartRaw {
              content: "optionsNix",
              span: Span {
               start: Position {
                line: 209,
                column: 36,
               },
               end: Position {
                line: 209,
                column: 46,
               },
              },
             },
            ),
            Raw(
             PartRaw {
              content: "optionsDocBook",
              span: Span {
               start: Position {
                line: 209,
                column: 47,
               },
               end: Position {
                line: 209,
                column: 61,
               },
              },
             },
            ),
           ],
           span: Span {
            start: Position {
             line: 206,
             column: 9,
            },
            end: Position {
             line: 209,
             column: 62,
            },
           },
          },
         ),
         KeyValue(
          BindingKeyValue {
           from: [
            Raw(
             PartRaw {
              content: "manualHTML",
              span: Span {
               start: Position {
                line: 212,
                column: 3,
               },
               end: Position {
                line: 212,
                column: 13,
               },
              },
             },
            ),
           ],
           to: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "runCommand",
               span: Span {
                start: Position {
                 line: 212,
                 column: 16,
                },
                end: Position {
                 line: 212,
                 column: 26,
                },
               },
              },
             ),
             arguments: [
              String(
               String_ {
                parts: [
                 Raw(
                  PartRaw {
                   content: "nixos-manual-html",
                   span: Span {
                    start: Position {
                     line: 212,
                     column: 28,
                    },
                    end: Position {
                     line: 212,
                     column: 45,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 212,
                  column: 27,
                 },
                 end: Position {
                  line: 212,
                  column: 46,
                 },
                },
               },
              ),
              Map(
               Map {
                recursive: false,
                bindings: [
                 Inherit(
                  BindingInherit {
                   from: None,
                   attributes: [
                    Raw(
                     PartRaw {
                      content: "sources",
                      span: Span {
                       start: Position {
                        line: 213,
                        column: 15,
                       },
                       end: Position {
                        line: 213,
                        column: 22,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 213,
                     column: 6,
                    },
                    end: Position {
                     line: 213,
                     column: 23,
                    },
                   },
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "nativeBuildInputs",
                      span: Span {
                       start: Position {
                        line: 214,
                        column: 7,
                       },
                       end: Position {
                        line: 214,
                        column: 24,
                       },
                      },
                     },
                    ),
                   ],
                   to: List(
                    List {
                     elements: [
                      PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "buildPackages",
                          span: Span {
                           start: Position {
                            line: 214,
                            column: 29,
                           },
                           end: Position {
                            line: 214,
                            column: 42,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "libxml2",
                           span: Span {
                            start: Position {
                             line: 214,
                             column: 43,
                            },
                            end: Position {
                             line: 214,
                             column: 50,
                            },
                           },
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: "bin",
                           span: Span {
                            start: Position {
                             line: 214,
                             column: 51,
                            },
                            end: Position {
                             line: 214,
                             column: 54,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                      PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "buildPackages",
                          span: Span {
                           start: Position {
                            line: 214,
                            column: 55,
                           },
                           end: Position {
                            line: 214,
                            column: 68,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "libxslt",
                           span: Span {
                            start: Position {
                             line: 214,
                             column: 69,
                            },
                            end: Position {
                             line: 214,
                             column: 76,
                            },
                           },
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: "bin",
                           span: Span {
                            start: Position {
                             line: 214,
                             column: 77,
                            },
                            end: Position {
                             line: 214,
                             column: 80,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 214,
                       column: 27,
                      },
                      end: Position {
                       line: 214,
                       column: 82,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "meta",
                      span: Span {
                       start: Position {
                        line: 215,
                        column: 7,
                       },
                       end: Position {
                        line: 215,
                        column: 11,
                       },
                      },
                     },
                    ),
                    Raw(
                     PartRaw {
                      content: "description",
                      span: Span {
                       start: Position {
                        line: 215,
                        column: 12,
                       },
                       end: Position {
                        line: 215,
                        column: 23,
                       },
                      },
                     },
                    ),
                   ],
                   to: String(
                    String_ {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "The NixOS manual in HTML format",
                        span: Span {
                         start: Position {
                          line: 215,
                          column: 27,
                         },
                         end: Position {
                          line: 215,
                          column: 58,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 215,
                       column: 26,
                      },
                      end: Position {
                       line: 215,
                       column: 59,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "allowedReferences",
                      span: Span {
                       start: Position {
                        line: 216,
                        column: 7,
                       },
                       end: Position {
                        line: 216,
                        column: 24,
                       },
                      },
                     },
                    ),
                   ],
                   to: List(
                    List {
                     elements: [
                      String(
                       String_ {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "out",
                           span: Span {
                            start: Position {
                             line: 216,
                             column: 29,
                            },
                            end: Position {
                             line: 216,
                             column: 32,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 216,
                          column: 28,
                         },
                         end: Position {
                          line: 216,
                          column: 33,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 216,
                       column: 27,
                      },
                      end: Position {
                       line: 216,
                       column: 34,
                      },
                     },
                    },
                   ),
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 213,
                  column: 5,
                 },
                 end: Position {
                  line: 217,
                  column: 6,
                 },
                },
               },
              ),
              IndentedString(
               IndentedString {
                parts: [
                 Raw(
                  PartRaw {
                   content: "# Generate the HTML manual.\ndst=$out/share/doc/nixos\nmkdir -p $dst\nxsltproc \\\n  ",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 1,
                    },
                    end: Position {
                     line: 223,
                     column: 9,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "manualXsltprocOptions",
                     span: Span {
                      start: Position {
                       line: 223,
                       column: 11,
                      },
                      end: Position {
                       line: 223,
                       column: 32,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: " \\\n  --stringparam target.database.document \"",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 1,
                    },
                    end: Position {
                     line: 224,
                     column: 49,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "olinkDB",
                     span: Span {
                      start: Position {
                       line: 224,
                       column: 51,
                      },
                      end: Position {
                       line: 224,
                       column: 58,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/olinkdb.xml\" \\\n  --stringparam id.warnings \"1\" \\\n  --nonet --output $dst/ \\\n  ",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 1,
                    },
                    end: Position {
                     line: 227,
                     column: 9,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "docbook_xsl_ns",
                     span: Span {
                      start: Position {
                       line: 227,
                       column: 11,
                      },
                      end: Position {
                       line: 227,
                       column: 25,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/xml/xsl/docbook/xhtml/chunktoc.xsl \\\n  ",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 1,
                    },
                    end: Position {
                     line: 228,
                     column: 9,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "manual-combined",
                     span: Span {
                      start: Position {
                       line: 228,
                       column: 11,
                      },
                      end: Position {
                       line: 228,
                       column: 26,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/manual-combined.xml \\\n  |& tee xsltproc.out\ngrep \"^ID recommended on\" xsltproc.out &>/dev/null && echo \"error: some IDs are missing\" && false\nrm xsltproc.out\n\nmkdir -p $dst/images/callouts\ncp ",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 1,
                    },
                    end: Position {
                     line: 234,
                     column: 10,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "docbook_xsl_ns",
                     span: Span {
                      start: Position {
                       line: 234,
                       column: 12,
                      },
                      end: Position {
                       line: 234,
                       column: 26,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/xml/xsl/docbook/images/callouts/*.svg $dst/images/callouts/\n\ncp ",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 1,
                    },
                    end: Position {
                     line: 236,
                     column: 10,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Path(
                    Path {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "../../../doc/style.css",
                        span: Span {
                         start: Position {
                          line: 236,
                          column: 12,
                         },
                         end: Position {
                          line: 236,
                          column: 34,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 236,
                       column: 12,
                      },
                      end: Position {
                       line: 236,
                       column: 34,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: " $dst/style.css\ncp ",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 1,
                    },
                    end: Position {
                     line: 237,
                     column: 10,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Path(
                    Path {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "../../../doc/overrides.css",
                        span: Span {
                         start: Position {
                          line: 237,
                          column: 12,
                         },
                         end: Position {
                          line: 237,
                          column: 38,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 237,
                       column: 12,
                      },
                      end: Position {
                       line: 237,
                       column: 38,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: " $dst/overrides.css\ncp -r ",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 1,
                    },
                    end: Position {
                     line: 238,
                     column: 13,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: PropertyAccess(
                    PropertyAccess {
                     expression: Identifier(
                      Identifier {
                       id: "pkgs",
                       span: Span {
                        start: Position {
                         line: 238,
                         column: 15,
                        },
                        end: Position {
                         line: 238,
                         column: 19,
                        },
                       },
                      },
                     ),
                     attribute_path: [
                      Raw(
                       PartRaw {
                        content: "documentation-highlighter",
                        span: Span {
                         start: Position {
                          line: 238,
                          column: 20,
                         },
                         end: Position {
                          line: 238,
                          column: 45,
                         },
                        },
                       },
                      ),
                     ],
                     default: None,
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: " $dst/highlightjs\n\nmkdir -p $out/nix-support\necho \"nix-build out $out\" >> $out/nix-support/hydra-build-products\necho \"doc manual $dst\" >> $out/nix-support/hydra-build-products\n",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 1,
                    },
                    end: Position {
                     line: 243,
                     column: 5,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 218,
                  column: 5,
                 },
                 end: Position {
                  line: 243,
                  column: 7,
                 },
                },
               },
              ),
             ],
            },
           ),
          },
         ),
         KeyValue(
          BindingKeyValue {
           from: [
            Raw(
             PartRaw {
              content: "manual",
              span: Span {
               start: Position {
                line: 246,
                column: 3,
               },
               end: Position {
                line: 246,
                column: 9,
               },
              },
             },
            ),
           ],
           to: Identifier(
            Identifier {
             id: "manualHTML",
             span: Span {
              start: Position {
               line: 246,
               column: 12,
              },
              end: Position {
               line: 246,
               column: 22,
              },
             },
            },
           ),
          },
         ),
         KeyValue(
          BindingKeyValue {
           from: [
            Raw(
             PartRaw {
              content: "manualHTMLIndex",
              span: Span {
               start: Position {
                line: 249,
                column: 3,
               },
               end: Position {
                line: 249,
                column: 18,
               },
              },
             },
            ),
           ],
           to: String(
            String_ {
             parts: [
              Interpolation(
               PartInterpolation {
                expression: Identifier(
                 Identifier {
                  id: "manualHTML",
                  span: Span {
                   start: Position {
                    line: 249,
                    column: 24,
                   },
                   end: Position {
                    line: 249,
                    column: 34,
                   },
                  },
                 },
                ),
               },
              ),
              Raw(
               PartRaw {
                content: "/share/doc/nixos/index.html",
                span: Span {
                 start: Position {
                  line: 249,
                  column: 22,
                 },
                 end: Position {
                  line: 249,
                  column: 62,
                 },
                },
               },
              ),
             ],
             span: Span {
              start: Position {
               line: 249,
               column: 21,
              },
              end: Position {
               line: 249,
               column: 63,
              },
             },
            },
           ),
          },
         ),
         KeyValue(
          BindingKeyValue {
           from: [
            Raw(
             PartRaw {
              content: "manualEpub",
              span: Span {
               start: Position {
                line: 251,
                column: 3,
               },
               end: Position {
                line: 251,
                column: 13,
               },
              },
             },
            ),
           ],
           to: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "runCommand",
               span: Span {
                start: Position {
                 line: 251,
                 column: 16,
                },
                end: Position {
                 line: 251,
                 column: 26,
                },
               },
              },
             ),
             arguments: [
              String(
               String_ {
                parts: [
                 Raw(
                  PartRaw {
                   content: "nixos-manual-epub",
                   span: Span {
                    start: Position {
                     line: 251,
                     column: 28,
                    },
                    end: Position {
                     line: 251,
                     column: 45,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 251,
                  column: 27,
                 },
                 end: Position {
                  line: 251,
                  column: 46,
                 },
                },
               },
              ),
              Map(
               Map {
                recursive: false,
                bindings: [
                 Inherit(
                  BindingInherit {
                   from: None,
                   attributes: [
                    Raw(
                     PartRaw {
                      content: "sources",
                      span: Span {
                       start: Position {
                        line: 252,
                        column: 15,
                       },
                       end: Position {
                        line: 252,
                        column: 22,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 252,
                     column: 6,
                    },
                    end: Position {
                     line: 252,
                     column: 23,
                    },
                   },
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "nativeBuildInputs",
                      span: Span {
                       start: Position {
                        line: 253,
                        column: 7,
                       },
                       end: Position {
                        line: 253,
                        column: 24,
                       },
                      },
                     },
                    ),
                   ],
                   to: List(
                    List {
                     elements: [
                      PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "buildPackages",
                          span: Span {
                           start: Position {
                            line: 253,
                            column: 29,
                           },
                           end: Position {
                            line: 253,
                            column: 42,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "libxml2",
                           span: Span {
                            start: Position {
                             line: 253,
                             column: 43,
                            },
                            end: Position {
                             line: 253,
                             column: 50,
                            },
                           },
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: "bin",
                           span: Span {
                            start: Position {
                             line: 253,
                             column: 51,
                            },
                            end: Position {
                             line: 253,
                             column: 54,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                      PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "buildPackages",
                          span: Span {
                           start: Position {
                            line: 253,
                            column: 55,
                           },
                           end: Position {
                            line: 253,
                            column: 68,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "libxslt",
                           span: Span {
                            start: Position {
                             line: 253,
                             column: 69,
                            },
                            end: Position {
                             line: 253,
                             column: 76,
                            },
                           },
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: "bin",
                           span: Span {
                            start: Position {
                             line: 253,
                             column: 77,
                            },
                            end: Position {
                             line: 253,
                             column: 80,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                      PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "buildPackages",
                          span: Span {
                           start: Position {
                            line: 253,
                            column: 81,
                           },
                           end: Position {
                            line: 253,
                            column: 94,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "zip",
                           span: Span {
                            start: Position {
                             line: 253,
                             column: 95,
                            },
                            end: Position {
                             line: 253,
                             column: 98,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 253,
                       column: 27,
                      },
                      end: Position {
                       line: 253,
                       column: 100,
                      },
                     },
                    },
                   ),
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 252,
                  column: 5,
                 },
                 end: Position {
                  line: 254,
                  column: 6,
                 },
                },
               },
              ),
              IndentedString(
               IndentedString {
                parts: [
                 Raw(
                  PartRaw {
                   content: "# Generate the epub manual.\ndst=$out/share/doc/nixos\n\nxsltproc \\\n  ",
                   span: Span {
                    start: Position {
                     line: 256,
                     column: 1,
                    },
                    end: Position {
                     line: 260,
                     column: 9,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "manualXsltprocOptions",
                     span: Span {
                      start: Position {
                       line: 260,
                       column: 11,
                      },
                      end: Position {
                       line: 260,
                       column: 32,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: " \\\n  --stringparam target.database.document \"",
                   span: Span {
                    start: Position {
                     line: 256,
                     column: 1,
                    },
                    end: Position {
                     line: 261,
                     column: 49,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "olinkDB",
                     span: Span {
                      start: Position {
                       line: 261,
                       column: 51,
                      },
                      end: Position {
                       line: 261,
                       column: 58,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/olinkdb.xml\" \\\n  --nonet --xinclude --output $dst/epub/ \\\n  ",
                   span: Span {
                    start: Position {
                     line: 256,
                     column: 1,
                    },
                    end: Position {
                     line: 263,
                     column: 9,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "docbook_xsl_ns",
                     span: Span {
                      start: Position {
                       line: 263,
                       column: 11,
                      },
                      end: Position {
                       line: 263,
                       column: 25,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/xml/xsl/docbook/epub/docbook.xsl \\\n  ",
                   span: Span {
                    start: Position {
                     line: 256,
                     column: 1,
                    },
                    end: Position {
                     line: 264,
                     column: 9,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "manual-combined",
                     span: Span {
                      start: Position {
                       line: 264,
                       column: 11,
                      },
                      end: Position {
                       line: 264,
                       column: 26,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/manual-combined.xml\n\nmkdir -p $dst/epub/OEBPS/images/callouts\ncp -r ",
                   span: Span {
                    start: Position {
                     line: 256,
                     column: 1,
                    },
                    end: Position {
                     line: 267,
                     column: 13,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "docbook_xsl_ns",
                     span: Span {
                      start: Position {
                       line: 267,
                       column: 15,
                      },
                      end: Position {
                       line: 267,
                       column: 29,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/xml/xsl/docbook/images/callouts/*.svg $dst/epub/OEBPS/images/callouts # */\necho \"application/epub+zip\" > mimetype\nmanual=\"$dst/nixos-manual.epub\"\nzip -0Xq \"$manual\" mimetype\ncd $dst/epub && zip -Xr9D \"$manual\" *\n\nrm -rf $dst/epub\n\nmkdir -p $out/nix-support\necho \"doc-epub manual $manual\" >> $out/nix-support/hydra-build-products\n",
                   span: Span {
                    start: Position {
                     line: 256,
                     column: 1,
                    },
                    end: Position {
                     line: 277,
                     column: 5,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 255,
                  column: 5,
                 },
                 end: Position {
                  line: 277,
                  column: 7,
                 },
                },
               },
              ),
             ],
            },
           ),
          },
         ),
         KeyValue(
          BindingKeyValue {
           from: [
            Raw(
             PartRaw {
              content: "manpages",
              span: Span {
               start: Position {
                line: 281,
                column: 3,
               },
               end: Position {
                line: 281,
                column: 11,
               },
              },
             },
            ),
           ],
           to: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "runCommand",
               span: Span {
                start: Position {
                 line: 281,
                 column: 14,
                },
                end: Position {
                 line: 281,
                 column: 24,
                },
               },
              },
             ),
             arguments: [
              String(
               String_ {
                parts: [
                 Raw(
                  PartRaw {
                   content: "nixos-manpages",
                   span: Span {
                    start: Position {
                     line: 281,
                     column: 26,
                    },
                    end: Position {
                     line: 281,
                     column: 40,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 281,
                  column: 25,
                 },
                 end: Position {
                  line: 281,
                  column: 41,
                 },
                },
               },
              ),
              Map(
               Map {
                recursive: false,
                bindings: [
                 Inherit(
                  BindingInherit {
                   from: None,
                   attributes: [
                    Raw(
                     PartRaw {
                      content: "sources",
                      span: Span {
                       start: Position {
                        line: 282,
                        column: 15,
                       },
                       end: Position {
                        line: 282,
                        column: 22,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 282,
                     column: 6,
                    },
                    end: Position {
                     line: 282,
                     column: 23,
                    },
                   },
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "nativeBuildInputs",
                      span: Span {
                       start: Position {
                        line: 283,
                        column: 7,
                       },
                       end: Position {
                        line: 283,
                        column: 24,
                       },
                      },
                     },
                    ),
                   ],
                   to: List(
                    List {
                     elements: [
                      PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "buildPackages",
                          span: Span {
                           start: Position {
                            line: 283,
                            column: 29,
                           },
                           end: Position {
                            line: 283,
                            column: 42,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "libxml2",
                           span: Span {
                            start: Position {
                             line: 283,
                             column: 43,
                            },
                            end: Position {
                             line: 283,
                             column: 50,
                            },
                           },
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: "bin",
                           span: Span {
                            start: Position {
                             line: 283,
                             column: 51,
                            },
                            end: Position {
                             line: 283,
                             column: 54,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                      PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "buildPackages",
                          span: Span {
                           start: Position {
                            line: 283,
                            column: 55,
                           },
                           end: Position {
                            line: 283,
                            column: 68,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "libxslt",
                           span: Span {
                            start: Position {
                             line: 283,
                             column: 69,
                            },
                            end: Position {
                             line: 283,
                             column: 76,
                            },
                           },
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: "bin",
                           span: Span {
                            start: Position {
                             line: 283,
                             column: 77,
                            },
                            end: Position {
                             line: 283,
                             column: 80,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 283,
                       column: 27,
                      },
                      end: Position {
                       line: 283,
                       column: 82,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 KeyValue(
                  BindingKeyValue {
                   from: [
                    Raw(
                     PartRaw {
                      content: "allowedReferences",
                      span: Span {
                       start: Position {
                        line: 284,
                        column: 7,
                       },
                       end: Position {
                        line: 284,
                        column: 24,
                       },
                      },
                     },
                    ),
                   ],
                   to: List(
                    List {
                     elements: [
                      String(
                       String_ {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "out",
                           span: Span {
                            start: Position {
                             line: 284,
                             column: 29,
                            },
                            end: Position {
                             line: 284,
                             column: 32,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 284,
                          column: 28,
                         },
                         end: Position {
                          line: 284,
                          column: 33,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 284,
                       column: 27,
                      },
                      end: Position {
                       line: 284,
                       column: 34,
                      },
                     },
                    },
                   ),
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 282,
                  column: 5,
                 },
                 end: Position {
                  line: 285,
                  column: 6,
                 },
                },
               },
              ),
              IndentedString(
               IndentedString {
                parts: [
                 Raw(
                  PartRaw {
                   content: "# Generate manpages.\nmkdir -p $out/share/man\nxsltproc --nonet \\\n  --maxdepth 6000 \\\n  --param man.output.in.separate.dir 1 \\\n  --param man.output.base.dir \"",
                   span: Span {
                    start: Position {
                     line: 287,
                     column: 1,
                    },
                    end: Position {
                     line: 292,
                     column: 38,
                    },
                   },
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "'",
                   span: Span {
                    start: Position {
                     line: 287,
                     column: 1,
                    },
                    end: Position {
                     line: 292,
                     column: 39,
                    },
                   },
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "$out/share/man/'\" \\\n  --param man.endnotes.are.numbered 0 \\\n  --param man.break.after.slash 1 \\\n  --stringparam target.database.document \"",
                   span: Span {
                    start: Position {
                     line: 287,
                     column: 1,
                    },
                    end: Position {
                     line: 295,
                     column: 49,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "olinkDB",
                     span: Span {
                      start: Position {
                       line: 295,
                       column: 51,
                      },
                      end: Position {
                       line: 295,
                       column: 58,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/olinkdb.xml\" \\\n  ",
                   span: Span {
                    start: Position {
                     line: 287,
                     column: 1,
                    },
                    end: Position {
                     line: 296,
                     column: 9,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "docbook_xsl_ns",
                     span: Span {
                      start: Position {
                       line: 296,
                       column: 11,
                      },
                      end: Position {
                       line: 296,
                       column: 25,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/xml/xsl/docbook/manpages/docbook.xsl \\\n  ",
                   span: Span {
                    start: Position {
                     line: 287,
                     column: 1,
                    },
                    end: Position {
                     line: 297,
                     column: 9,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "manual-combined",
                     span: Span {
                      start: Position {
                       line: 297,
                       column: 11,
                      },
                      end: Position {
                       line: 297,
                       column: 26,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/man-pages-combined.xml\n",
                   span: Span {
                    start: Position {
                     line: 287,
                     column: 1,
                    },
                    end: Position {
                     line: 298,
                     column: 5,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 286,
                  column: 5,
                 },
                 end: Position {
                  line: 298,
                  column: 7,
                 },
                },
               },
              ),
             ],
            },
           ),
          },
         ),
        ],
        span: Span {
         start: Position {
          line: 206,
          column: 4,
         },
         end: Position {
          line: 300,
          column: 2,
         },
        },
       },
      ),
      span: Span {
       start: Position {
        line: 15,
        column: 1,
       },
       end: Position {
        line: 300,
        column: 2,
       },
      },
     },
    ),
    span: Span {
     start: Position {
      line: 13,
      column: 1,
     },
     end: Position {
      line: 300,
      column: 2,
     },
    },
   },
  ),
  span: Span {
   start: Position {
    line: 1,
    column: 1,
   },
   end: Position {
    line: 300,
    column: 2,
   },
  },
 },
)