Function(
 Function {
  head: Destructured(
   FunctionHeadDestructured {
    ellipsis: true,
    identifier: None,
    arguments: [
     FunctionHeadDestructuredArgument {
      identifier: "config",
      default: None,
     },
     FunctionHeadDestructuredArgument {
      identifier: "lib",
      default: None,
     },
     FunctionHeadDestructuredArgument {
      identifier: "options",
      default: None,
     },
     FunctionHeadDestructuredArgument {
      identifier: "pkgs",
      default: None,
     },
    ],
   },
  ),
  body: With(
   With {
    expression: Identifier(
     Identifier {
      id: "lib",
      span: Span {
       start: Position {
        line: 6,
        column: 6,
       },
       end: Position {
        line: 6,
        column: 9,
       },
      },
     },
    ),
    target: Map(
     Map {
      recursive: false,
      bindings: [
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "imports",
            span: Span {
             start: Position {
              line: 9,
              column: 3,
             },
             end: Position {
              line: 9,
              column: 10,
             },
            },
           },
          ),
         ],
         to: List(
          List {
           elements: [
            Path(
             Path {
              parts: [
               Raw(
                PartRaw {
                 content: "./iso-image.nix",
                 span: Span {
                  start: Position {
                   line: 10,
                   column: 7,
                  },
                  end: Position {
                   line: 10,
                   column: 22,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 10,
                column: 7,
               },
               end: Position {
                line: 10,
                column: 22,
               },
              },
             },
            ),
            Path(
             Path {
              parts: [
               Raw(
                PartRaw {
                 content: "../../profiles/all-hardware.nix",
                 span: Span {
                  start: Position {
                   line: 13,
                   column: 7,
                  },
                  end: Position {
                   line: 13,
                   column: 38,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 13,
                column: 7,
               },
               end: Position {
                line: 13,
                column: 38,
               },
              },
             },
            ),
            Path(
             Path {
              parts: [
               Raw(
                PartRaw {
                 content: "../../profiles/base.nix",
                 span: Span {
                  start: Position {
                   line: 14,
                   column: 7,
                  },
                  end: Position {
                   line: 14,
                   column: 30,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 14,
                column: 7,
               },
               end: Position {
                line: 14,
                column: 30,
               },
              },
             },
            ),
            Path(
             Path {
              parts: [
               Raw(
                PartRaw {
                 content: "../../profiles/installation-device.nix",
                 span: Span {
                  start: Position {
                   line: 15,
                   column: 7,
                  },
                  end: Position {
                   line: 15,
                   column: 45,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 15,
                column: 7,
               },
               end: Position {
                line: 15,
                column: 45,
               },
              },
             },
            ),
           ],
           span: Span {
            start: Position {
             line: 10,
             column: 5,
            },
            end: Position {
             line: 16,
             column: 6,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "console",
            span: Span {
             start: Position {
              line: 19,
              column: 3,
             },
             end: Position {
              line: 19,
              column: 10,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "packages",
            span: Span {
             start: Position {
              line: 19,
              column: 11,
             },
             end: Position {
              line: 19,
              column: 19,
             },
            },
           },
          ),
         ],
         to: BinaryOperation(
          BinaryOperation {
           left: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "options",
               span: Span {
                start: Position {
                 line: 19,
                 column: 22,
                },
                end: Position {
                 line: 19,
                 column: 29,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "console",
                span: Span {
                 start: Position {
                  line: 19,
                  column: 30,
                 },
                 end: Position {
                  line: 19,
                  column: 37,
                 },
                },
               },
              ),
              Raw(
               PartRaw {
                content: "packages",
                span: Span {
                 start: Position {
                  line: 19,
                  column: 38,
                 },
                 end: Position {
                  line: 19,
                  column: 46,
                 },
                },
               },
              ),
              Raw(
               PartRaw {
                content: "default",
                span: Span {
                 start: Position {
                  line: 19,
                  column: 47,
                 },
                 end: Position {
                  line: 19,
                  column: 54,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           operator: Concatenation,
           right: List(
            List {
             elements: [
              PropertyAccess(
               PropertyAccess {
                expression: Identifier(
                 Identifier {
                  id: "pkgs",
                  span: Span {
                   start: Position {
                    line: 19,
                    column: 60,
                   },
                   end: Position {
                    line: 19,
                    column: 64,
                   },
                  },
                 },
                ),
                attribute_path: [
                 Raw(
                  PartRaw {
                   content: "terminus_font",
                   span: Span {
                    start: Position {
                     line: 19,
                     column: 65,
                    },
                    end: Position {
                     line: 19,
                     column: 78,
                    },
                   },
                  },
                 ),
                ],
                default: None,
               },
              ),
             ],
             span: Span {
              start: Position {
               line: 19,
               column: 58,
              },
              end: Position {
               line: 19,
               column: 80,
              },
             },
            },
           ),
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "isoImage",
            span: Span {
             start: Position {
              line: 22,
              column: 3,
             },
             end: Position {
              line: 22,
              column: 11,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "isoName",
            span: Span {
             start: Position {
              line: 22,
              column: 12,
             },
             end: Position {
              line: 22,
              column: 19,
             },
            },
           },
          ),
         ],
         to: String(
          String_ {
           parts: [
            Interpolation(
             PartInterpolation {
              expression: PropertyAccess(
               PropertyAccess {
                expression: Identifier(
                 Identifier {
                  id: "config",
                  span: Span {
                   start: Position {
                    line: 22,
                    column: 25,
                   },
                   end: Position {
                    line: 22,
                    column: 31,
                   },
                  },
                 },
                ),
                attribute_path: [
                 Raw(
                  PartRaw {
                   content: "isoImage",
                   span: Span {
                    start: Position {
                     line: 22,
                     column: 32,
                    },
                    end: Position {
                     line: 22,
                     column: 40,
                    },
                   },
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "isoBaseName",
                   span: Span {
                    start: Position {
                     line: 22,
                     column: 41,
                    },
                    end: Position {
                     line: 22,
                     column: 52,
                    },
                   },
                  },
                 ),
                ],
                default: None,
               },
              ),
             },
            ),
            Raw(
             PartRaw {
              content: "-",
              span: Span {
               start: Position {
                line: 22,
                column: 23,
               },
               end: Position {
                line: 22,
                column: 54,
               },
              },
             },
            ),
            Interpolation(
             PartInterpolation {
              expression: PropertyAccess(
               PropertyAccess {
                expression: Identifier(
                 Identifier {
                  id: "config",
                  span: Span {
                   start: Position {
                    line: 22,
                    column: 56,
                   },
                   end: Position {
                    line: 22,
                    column: 62,
                   },
                  },
                 },
                ),
                attribute_path: [
                 Raw(
                  PartRaw {
                   content: "system",
                   span: Span {
                    start: Position {
                     line: 22,
                     column: 63,
                    },
                    end: Position {
                     line: 22,
                     column: 69,
                    },
                   },
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "nixos",
                   span: Span {
                    start: Position {
                     line: 22,
                     column: 70,
                    },
                    end: Position {
                     line: 22,
                     column: 75,
                    },
                   },
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "label",
                   span: Span {
                    start: Position {
                     line: 22,
                     column: 76,
                    },
                    end: Position {
                     line: 22,
                     column: 81,
                    },
                   },
                  },
                 ),
                ],
                default: None,
               },
              ),
             },
            ),
            Raw(
             PartRaw {
              content: "-",
              span: Span {
               start: Position {
                line: 22,
                column: 23,
               },
               end: Position {
                line: 22,
                column: 83,
               },
              },
             },
            ),
            Interpolation(
             PartInterpolation {
              expression: PropertyAccess(
               PropertyAccess {
                expression: Identifier(
                 Identifier {
                  id: "pkgs",
                  span: Span {
                   start: Position {
                    line: 22,
                    column: 85,
                   },
                   end: Position {
                    line: 22,
                    column: 89,
                   },
                  },
                 },
                ),
                attribute_path: [
                 Raw(
                  PartRaw {
                   content: "stdenv",
                   span: Span {
                    start: Position {
                     line: 22,
                     column: 90,
                    },
                    end: Position {
                     line: 22,
                     column: 96,
                    },
                   },
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "hostPlatform",
                   span: Span {
                    start: Position {
                     line: 22,
                     column: 97,
                    },
                    end: Position {
                     line: 22,
                     column: 109,
                    },
                   },
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "system",
                   span: Span {
                    start: Position {
                     line: 22,
                     column: 110,
                    },
                    end: Position {
                     line: 22,
                     column: 116,
                    },
                   },
                  },
                 ),
                ],
                default: None,
               },
              ),
             },
            ),
            Raw(
             PartRaw {
              content: ".iso",
              span: Span {
               start: Position {
                line: 22,
                column: 23,
               },
               end: Position {
                line: 22,
                column: 121,
               },
              },
             },
            ),
           ],
           span: Span {
            start: Position {
             line: 22,
             column: 22,
            },
            end: Position {
             line: 22,
             column: 122,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "isoImage",
            span: Span {
             start: Position {
              line: 25,
              column: 3,
             },
             end: Position {
              line: 25,
              column: 11,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "makeEfiBootable",
            span: Span {
             start: Position {
              line: 25,
              column: 12,
             },
             end: Position {
              line: 25,
              column: 27,
             },
            },
           },
          ),
         ],
         to: Identifier(
          Identifier {
           id: "true",
           span: Span {
            start: Position {
             line: 25,
             column: 30,
            },
            end: Position {
             line: 25,
             column: 34,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "isoImage",
            span: Span {
             start: Position {
              line: 28,
              column: 3,
             },
             end: Position {
              line: 28,
              column: 11,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "makeUsbBootable",
            span: Span {
             start: Position {
              line: 28,
              column: 12,
             },
             end: Position {
              line: 28,
              column: 27,
             },
            },
           },
          ),
         ],
         to: Identifier(
          Identifier {
           id: "true",
           span: Span {
            start: Position {
             line: 28,
             column: 30,
            },
            end: Position {
             line: 28,
             column: 34,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "boot",
            span: Span {
             start: Position {
              line: 31,
              column: 3,
             },
             end: Position {
              line: 31,
              column: 7,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "loader",
            span: Span {
             start: Position {
              line: 31,
              column: 8,
             },
             end: Position {
              line: 31,
              column: 14,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "grub",
            span: Span {
             start: Position {
              line: 31,
              column: 15,
             },
             end: Position {
              line: 31,
              column: 19,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "memtest86",
            span: Span {
             start: Position {
              line: 31,
              column: 20,
             },
             end: Position {
              line: 31,
              column: 29,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "enable",
            span: Span {
             start: Position {
              line: 31,
              column: 30,
             },
             end: Position {
              line: 31,
              column: 36,
             },
            },
           },
          ),
         ],
         to: Identifier(
          Identifier {
           id: "true",
           span: Span {
            start: Position {
             line: 31,
             column: 39,
            },
            end: Position {
             line: 31,
             column: 43,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "swapDevices",
            span: Span {
             start: Position {
              line: 35,
              column: 3,
             },
             end: Position {
              line: 35,
              column: 14,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "mkImageMediaOverride",
             span: Span {
              start: Position {
               line: 35,
               column: 17,
              },
              end: Position {
               line: 35,
               column: 37,
              },
             },
            },
           ),
           arguments: [
            List(
             List {
              elements: [],
              span: Span {
               start: Position {
                line: 35,
                column: 38,
               },
               end: Position {
                line: 35,
                column: 41,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "fileSystems",
            span: Span {
             start: Position {
              line: 36,
              column: 3,
             },
             end: Position {
              line: 36,
              column: 14,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "mkImageMediaOverride",
             span: Span {
              start: Position {
               line: 36,
               column: 17,
              },
              end: Position {
               line: 36,
               column: 37,
              },
             },
            },
           ),
           arguments: [
            PropertyAccess(
             PropertyAccess {
              expression: Identifier(
               Identifier {
                id: "config",
                span: Span {
                 start: Position {
                  line: 36,
                  column: 38,
                 },
                 end: Position {
                  line: 36,
                  column: 44,
                 },
                },
               },
              ),
              attribute_path: [
               Raw(
                PartRaw {
                 content: "lib",
                 span: Span {
                  start: Position {
                   line: 36,
                   column: 45,
                  },
                  end: Position {
                   line: 36,
                   column: 48,
                  },
                 },
                },
               ),
               Raw(
                PartRaw {
                 content: "isoFileSystems",
                 span: Span {
                  start: Position {
                   line: 36,
                   column: 49,
                  },
                  end: Position {
                   line: 36,
                   column: 63,
                  },
                 },
                },
               ),
              ],
              default: None,
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "boot",
            span: Span {
             start: Position {
              line: 38,
              column: 3,
             },
             end: Position {
              line: 38,
              column: 7,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "postBootCommands",
            span: Span {
             start: Position {
              line: 38,
              column: 8,
             },
             end: Position {
              line: 38,
              column: 24,
             },
            },
           },
          ),
         ],
         to: IndentedString(
          IndentedString {
           parts: [
            Raw(
             PartRaw {
              content: "for o in $(</proc/cmdline); do\n  case \"$o\" in\n    live.nixos.passwd=*)\n      set -- $(IFS==; echo $o)\n      echo \"nixos:$2\" | ",
              span: Span {
               start: Position {
                line: 39,
                column: 1,
               },
               end: Position {
                line: 43,
                column: 29,
               },
              },
             },
            ),
            Interpolation(
             PartInterpolation {
              expression: PropertyAccess(
               PropertyAccess {
                expression: Identifier(
                 Identifier {
                  id: "pkgs",
                  span: Span {
                   start: Position {
                    line: 43,
                    column: 31,
                   },
                   end: Position {
                    line: 43,
                    column: 35,
                   },
                  },
                 },
                ),
                attribute_path: [
                 Raw(
                  PartRaw {
                   content: "shadow",
                   span: Span {
                    start: Position {
                     line: 43,
                     column: 36,
                    },
                    end: Position {
                     line: 43,
                     column: 42,
                    },
                   },
                  },
                 ),
                ],
                default: None,
               },
              ),
             },
            ),
            Raw(
             PartRaw {
              content: "/bin/chpasswd\n      ;;\n  esac\ndone\n",
              span: Span {
               start: Position {
                line: 39,
                column: 1,
               },
               end: Position {
                line: 47,
                column: 3,
               },
              },
             },
            ),
           ],
           span: Span {
            start: Position {
             line: 38,
             column: 27,
            },
            end: Position {
             line: 47,
             column: 5,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "system",
            span: Span {
             start: Position {
              line: 49,
              column: 3,
             },
             end: Position {
              line: 49,
              column: 9,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "stateVersion",
            span: Span {
             start: Position {
              line: 49,
              column: 10,
             },
             end: Position {
              line: 49,
              column: 22,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "lib",
               span: Span {
                start: Position {
                 line: 49,
                 column: 25,
                },
                end: Position {
                 line: 49,
                 column: 28,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "mkDefault",
                span: Span {
                 start: Position {
                  line: 49,
                  column: 29,
                 },
                 end: Position {
                  line: 49,
                  column: 38,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            PropertyAccess(
             PropertyAccess {
              expression: Identifier(
               Identifier {
                id: "lib",
                span: Span {
                 start: Position {
                  line: 49,
                  column: 39,
                 },
                 end: Position {
                  line: 49,
                  column: 42,
                 },
                },
               },
              ),
              attribute_path: [
               Raw(
                PartRaw {
                 content: "trivial",
                 span: Span {
                  start: Position {
                   line: 49,
                   column: 43,
                  },
                  end: Position {
                   line: 49,
                   column: 50,
                  },
                 },
                },
               ),
               Raw(
                PartRaw {
                 content: "release",
                 span: Span {
                  start: Position {
                   line: 49,
                   column: 51,
                  },
                  end: Position {
                   line: 49,
                   column: 58,
                  },
                 },
                },
               ),
              ],
              default: None,
             },
            ),
           ],
          },
         ),
        },
       ),
      ],
      span: Span {
       start: Position {
        line: 8,
        column: 1,
       },
       end: Position {
        line: 50,
        column: 2,
       },
      },
     },
    ),
    span: Span {
     start: Position {
      line: 6,
      column: 1,
     },
     end: Position {
      line: 50,
      column: 2,
     },
    },
   },
  ),
  span: Span {
   start: Position {
    line: 4,
    column: 1,
   },
   end: Position {
    line: 50,
    column: 2,
   },
  },
 },
)