LetIn(
 LetIn {
  bindings: [
   KeyValue(
    BindingKeyValue {
     from: [
      Raw(
       PartRaw {
        content: "requiredVersion",
        span: Span {
         start: Position {
          line: 1,
          column: 5,
         },
         end: Position {
          line: 1,
          column: 20,
         },
        },
       },
      ),
     ],
     to: FunctionApplication(
      FunctionApplication {
       function: Identifier(
        Identifier {
         id: "import",
         span: Span {
          start: Position {
           line: 1,
           column: 23,
          },
          end: Position {
           line: 1,
           column: 29,
          },
         },
        },
       ),
       arguments: [
        Path(
         Path {
          parts: [
           Raw(
            PartRaw {
             content: "./lib/minver.nix",
             span: Span {
              start: Position {
               line: 1,
               column: 30,
              },
              end: Position {
               line: 1,
               column: 46,
              },
             },
            },
           ),
          ],
          span: Span {
           start: Position {
            line: 1,
            column: 30,
           },
           end: Position {
            line: 1,
            column: 46,
           },
          },
         },
        ),
       ],
      },
     ),
    },
   ),
  ],
  target: IfThenElse(
   IfThenElse {
    predicate: BinaryOperation(
     BinaryOperation {
      left: UnaryOperation(
       UnaryOperation {
        operator: Not,
        operand: HasAttribute(
         HasAttribute {
          expression: Identifier(
           Identifier {
            id: "builtins",
            span: Span {
             start: Position {
              line: 3,
              column: 6,
             },
             end: Position {
              line: 3,
              column: 14,
             },
            },
           },
          ),
          attribute_path: [
           Raw(
            PartRaw {
             content: "nixVersion",
             span: Span {
              start: Position {
               line: 3,
               column: 17,
              },
              end: Position {
               line: 3,
               column: 27,
              },
             },
            },
           ),
          ],
         },
        ),
        span: Span {
         start: Position {
          line: 3,
          column: 4,
         },
         end: Position {
          line: 3,
          column: 27,
         },
        },
       },
      ),
      operator: LogicalOr,
      right: BinaryOperation(
       BinaryOperation {
        left: FunctionApplication(
         FunctionApplication {
          function: PropertyAccess(
           PropertyAccess {
            expression: Identifier(
             Identifier {
              id: "builtins",
              span: Span {
               start: Position {
                line: 3,
                column: 31,
               },
               end: Position {
                line: 3,
                column: 39,
               },
              },
             },
            ),
            attribute_path: [
             Raw(
              PartRaw {
               content: "compareVersions",
               span: Span {
                start: Position {
                 line: 3,
                 column: 40,
                },
                end: Position {
                 line: 3,
                 column: 55,
                },
               },
              },
             ),
            ],
            default: None,
           },
          ),
          arguments: [
           Identifier(
            Identifier {
             id: "requiredVersion",
             span: Span {
              start: Position {
               line: 3,
               column: 56,
              },
              end: Position {
               line: 3,
               column: 71,
              },
             },
            },
           ),
           PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "builtins",
               span: Span {
                start: Position {
                 line: 3,
                 column: 72,
                },
                end: Position {
                 line: 3,
                 column: 80,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "nixVersion",
                span: Span {
                 start: Position {
                  line: 3,
                  column: 81,
                 },
                 end: Position {
                  line: 3,
                  column: 91,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
          ],
         },
        ),
        operator: EqualTo,
        right: Integer(
         Integer {
          value: "1",
          span: Span {
           start: Position {
            line: 3,
            column: 95,
           },
           end: Position {
            line: 3,
            column: 96,
           },
          },
         },
        ),
       },
      ),
     },
    ),
    then: FunctionApplication(
     FunctionApplication {
      function: Identifier(
       Identifier {
        id: "abort",
        span: Span {
         start: Position {
          line: 5,
          column: 3,
         },
         end: Position {
          line: 5,
          column: 8,
         },
        },
       },
      ),
      arguments: [
       IndentedString(
        IndentedString {
         parts: [
          Raw(
           PartRaw {
            content: "\nThis version of Nixpkgs requires Nix >= ",
            span: Span {
             start: Position {
              line: 6,
              column: 1,
             },
             end: Position {
              line: 7,
              column: 45,
             },
            },
           },
          ),
          Interpolation(
           PartInterpolation {
            expression: Identifier(
             Identifier {
              id: "requiredVersion",
              span: Span {
               start: Position {
                line: 7,
                column: 47,
               },
               end: Position {
                line: 7,
                column: 62,
               },
              },
             },
            ),
           },
          ),
          Raw(
           PartRaw {
            content: ", please upgrade:\n\n- If you are running NixOS, `nixos-rebuild' can be used to upgrade your system.\n\n- Alternatively, with Nix > 2.0 `nix upgrade-nix' can be used to imperatively\n  upgrade Nix. You may use `nix-env --version' to check which version you have.\n\n- If you installed Nix using the install script (https://nixos.org/nix/install),\n  it is safe to upgrade by running it again:\n\n      curl -L https://nixos.org/nix/install | sh\n\nFor more information, please see the NixOS release notes at\nhttps://nixos.org/nixos/manual or locally at\n",
            span: Span {
             start: Position {
              line: 6,
              column: 1,
             },
             end: Position {
              line: 21,
              column: 5,
             },
            },
           },
          ),
          Interpolation(
           PartInterpolation {
            expression: FunctionApplication(
             FunctionApplication {
              function: Identifier(
               Identifier {
                id: "toString",
                span: Span {
                 start: Position {
                  line: 21,
                  column: 7,
                 },
                 end: Position {
                  line: 21,
                  column: 15,
                 },
                },
               },
              ),
              arguments: [
               Path(
                Path {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "./nixos/doc/manual/release-notes",
                    span: Span {
                     start: Position {
                      line: 21,
                      column: 16,
                     },
                     end: Position {
                      line: 21,
                      column: 48,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 21,
                   column: 16,
                  },
                  end: Position {
                   line: 21,
                   column: 48,
                  },
                 },
                },
               ),
              ],
             },
            ),
           },
          ),
          Raw(
           PartRaw {
            content: ".\n\nIf you need further help, see https://nixos.org/nixos/support.html\n",
            span: Span {
             start: Position {
              line: 6,
              column: 1,
             },
             end: Position {
              line: 24,
              column: 3,
             },
            },
           },
          ),
         ],
         span: Span {
          start: Position {
           line: 5,
           column: 9,
          },
          end: Position {
           line: 24,
           column: 5,
          },
         },
        },
       ),
      ],
     },
    ),
    else_: FunctionApplication(
     FunctionApplication {
      function: Identifier(
       Identifier {
        id: "import",
        span: Span {
         start: Position {
          line: 28,
          column: 3,
         },
         end: Position {
          line: 28,
          column: 9,
         },
        },
       },
      ),
      arguments: [
       Path(
        Path {
         parts: [
          Raw(
           PartRaw {
            content: "./pkgs/top-level/impure.nix",
            span: Span {
             start: Position {
              line: 28,
              column: 10,
             },
             end: Position {
              line: 28,
              column: 37,
             },
            },
           },
          ),
         ],
         span: Span {
          start: Position {
           line: 28,
           column: 10,
          },
          end: Position {
           line: 28,
           column: 37,
          },
         },
        },
       ),
      ],
     },
    ),
    span: Span {
     start: Position {
      line: 3,
      column: 1,
     },
     end: Position {
      line: 28,
      column: 10,
     },
    },
   },
  ),
  span: Span {
   start: Position {
    line: 1,
    column: 1,
   },
   end: Position {
    line: 28,
    column: 10,
   },
  },
 },
)