Function( Function { head: Destructured( FunctionHeadDestructured { ellipsis: true, identifier: None, arguments: [ FunctionHeadDestructuredArgument { identifier: "config", default: None, }, FunctionHeadDestructuredArgument { identifier: "lib", default: None, }, FunctionHeadDestructuredArgument { identifier: "pkgs", default: None, }, ], }, ), body: With( With { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 3, column: 6, }, end: Position { line: 3, column: 9, }, }, }, ), target: LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "cfg", span: Span { start: Position { line: 7, column: 3, }, end: Position { line: 7, column: 6, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 7, column: 9, }, end: Position { line: 7, column: 15, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 7, column: 16, }, end: Position { line: 7, column: 19, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nixPackage", span: Span { start: Position { line: 9, column: 3, }, end: Position { line: 9, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 9, column: 16, }, end: Position { line: 9, column: 19, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "package", span: Span { start: Position { line: 9, column: 20, }, end: Position { line: 9, column: 27, }, }, }, ), Raw( PartRaw { content: "out", span: Span { start: Position { line: 9, column: 28, }, end: Position { line: 9, column: 31, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "isNixAtLeast", span: Span { start: Position { line: 11, column: 3, }, end: Position { line: 11, column: 15, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "versionAtLeast", span: Span { start: Position { line: 11, column: 18, }, end: Position { line: 11, column: 32, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "getVersion", span: Span { start: Position { line: 11, column: 34, }, end: Position { line: 11, column: 44, }, }, }, ), arguments: [ Identifier( Identifier { id: "nixPackage", span: Span { start: Position { line: 11, column: 45, }, end: Position { line: 11, column: 55, }, }, }, ), ], }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "makeNixBuildUser", span: Span { start: Position { line: 13, column: 3, }, end: Position { line: 13, column: 19, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "nr", }, ), body: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "name", span: Span { start: Position { line: 14, column: 5, }, end: Position { line: 14, column: 9, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "nixbld", span: Span { start: Position { line: 14, column: 13, }, end: Position { line: 14, column: 33, }, }, }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 14, column: 21, }, end: Position { line: 14, column: 29, }, }, }, ), arguments: [ Identifier( Identifier { id: "nr", span: Span { start: Position { line: 14, column: 30, }, end: Position { line: 14, column: 32, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 14, column: 12, }, end: Position { line: 14, column: 34, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "value", span: Span { start: Position { line: 15, column: 5, }, end: Position { line: 15, column: 10, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 16, column: 7, }, end: Position { line: 16, column: 18, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "Nix build user ", span: Span { start: Position { line: 16, column: 22, }, end: Position { line: 16, column: 51, }, }, }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 16, column: 39, }, end: Position { line: 16, column: 47, }, }, }, ), arguments: [ Identifier( Identifier { id: "nr", span: Span { start: Position { line: 16, column: 48, }, end: Position { line: 16, column: 50, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 16, column: 21, }, end: Position { line: 16, column: 52, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "uid", span: Span { start: Position { line: 23, column: 7, }, end: Position { line: 23, column: 10, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "builtins", span: Span { start: Position { line: 23, column: 13, }, end: Position { line: 23, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "add", span: Span { start: Position { line: 23, column: 22, }, end: Position { line: 23, column: 25, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 23, column: 26, }, end: Position { line: 23, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "ids", span: Span { start: Position { line: 23, column: 33, }, end: Position { line: 23, column: 36, }, }, }, ), Raw( PartRaw { content: "uids", span: Span { start: Position { line: 23, column: 37, }, end: Position { line: 23, column: 41, }, }, }, ), Raw( PartRaw { content: "nixbld", span: Span { start: Position { line: 23, column: 42, }, end: Position { line: 23, column: 48, }, }, }, ), ], default: None, }, ), Identifier( Identifier { id: "nr", span: Span { start: Position { line: 23, column: 49, }, end: Position { line: 23, column: 51, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "isSystemUser", span: Span { start: Position { line: 24, column: 7, }, end: Position { line: 24, column: 19, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 24, column: 22, }, end: Position { line: 24, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "group", span: Span { start: Position { line: 25, column: 7, }, end: Position { line: 25, column: 12, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "nixbld", span: Span { start: Position { line: 25, column: 16, }, end: Position { line: 25, column: 22, }, }, }, ), ], span: Span { start: Position { line: 25, column: 15, }, end: Position { line: 25, column: 23, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "extraGroups", span: Span { start: Position { line: 26, column: 7, }, end: Position { line: 26, column: 18, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nixbld", span: Span { start: Position { line: 26, column: 24, }, end: Position { line: 26, column: 30, }, }, }, ), ], span: Span { start: Position { line: 26, column: 23, }, end: Position { line: 26, column: 31, }, }, }, ), ], span: Span { start: Position { line: 26, column: 21, }, end: Position { line: 26, column: 33, }, }, }, ), }, ), ], span: Span { start: Position { line: 15, column: 13, }, end: Position { line: 27, column: 6, }, }, }, ), }, ), ], span: Span { start: Position { line: 13, column: 26, }, end: Position { line: 28, column: 4, }, }, }, ), span: Span { start: Position { line: 13, column: 22, }, end: Position { line: 28, column: 4, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nixbldUsers", span: Span { start: Position { line: 30, column: 3, }, end: Position { line: 30, column: 14, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "listToAttrs", span: Span { start: Position { line: 30, column: 17, }, end: Position { line: 30, column: 28, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "map", span: Span { start: Position { line: 30, column: 30, }, end: Position { line: 30, column: 33, }, }, }, ), arguments: [ Identifier( Identifier { id: "makeNixBuildUser", span: Span { start: Position { line: 30, column: 34, }, end: Position { line: 30, column: 50, }, }, }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "range", span: Span { start: Position { line: 30, column: 52, }, end: Position { line: 30, column: 57, }, }, }, ), arguments: [ Integer( Integer { value: "1", span: Span { start: Position { line: 30, column: 58, }, end: Position { line: 30, column: 59, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 30, column: 60, }, end: Position { line: 30, column: 63, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nrBuildUsers", span: Span { start: Position { line: 30, column: 64, }, end: Position { line: 30, column: 76, }, }, }, ), ], default: None, }, ), ], }, ), ], }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nixConf", span: Span { start: Position { line: 32, column: 3, }, end: Position { line: 32, column: 10, }, }, }, ), ], to: Assert( Assert { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isNixAtLeast", span: Span { start: Position { line: 33, column: 12, }, end: Position { line: 33, column: 24, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "2.2", span: Span { start: Position { line: 33, column: 26, }, end: Position { line: 33, column: 29, }, }, }, ), ], span: Span { start: Position { line: 33, column: 25, }, end: Position { line: 33, column: 30, }, }, }, ), ], }, ), target: LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "mkValueString", span: Span { start: Position { line: 36, column: 7, }, end: Position { line: 36, column: 20, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "v", }, ), body: IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: Identifier( Identifier { id: "v", span: Span { start: Position { line: 37, column: 12, }, end: Position { line: 37, column: 13, }, }, }, ), operator: EqualTo, right: Identifier( Identifier { id: "null", span: Span { start: Position { line: 37, column: 17, }, end: Position { line: 37, column: 21, }, }, }, ), }, ), then: String( String_ { parts: [], span: Span { start: Position { line: 37, column: 27, }, end: Position { line: 37, column: 29, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isInt", span: Span { start: Position { line: 38, column: 17, }, end: Position { line: 38, column: 22, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 38, column: 23, }, end: Position { line: 38, column: 24, }, }, }, ), ], }, ), then: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 38, column: 30, }, end: Position { line: 38, column: 38, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 38, column: 39, }, end: Position { line: 38, column: 40, }, }, }, ), ], }, ), else_: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isBool", span: Span { start: Position { line: 39, column: 17, }, end: Position { line: 39, column: 23, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 39, column: 24, }, end: Position { line: 39, column: 25, }, }, }, ), ], }, ), then: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "boolToString", span: Span { start: Position { line: 39, column: 31, }, end: Position { line: 39, column: 43, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 39, column: 44, }, end: Position { line: 39, column: 45, }, }, }, ), ], }, ), else_: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isFloat", span: Span { start: Position { line: 40, column: 17, }, end: Position { line: 40, column: 24, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 40, column: 25, }, end: Position { line: 40, column: 26, }, }, }, ), ], }, ), then: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "floatToString", span: Span { start: Position { line: 40, column: 32, }, end: Position { line: 40, column: 45, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 40, column: 46, }, end: Position { line: 40, column: 47, }, }, }, ), ], }, ), else_: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isList", span: Span { start: Position { line: 41, column: 17, }, end: Position { line: 41, column: 23, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 41, column: 24, }, end: Position { line: 41, column: 25, }, }, }, ), ], }, ), then: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 41, column: 31, }, end: Position { line: 41, column: 39, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 41, column: 40, }, end: Position { line: 41, column: 41, }, }, }, ), ], }, ), else_: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isDerivation", span: Span { start: Position { line: 42, column: 17, }, end: Position { line: 42, column: 29, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 42, column: 30, }, end: Position { line: 42, column: 31, }, }, }, ), ], }, ), then: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 42, column: 37, }, end: Position { line: 42, column: 45, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 42, column: 46, }, end: Position { line: 42, column: 47, }, }, }, ), ], }, ), else_: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "builtins", span: Span { start: Position { line: 43, column: 17, }, end: Position { line: 43, column: 25, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isPath", span: Span { start: Position { line: 43, column: 26, }, end: Position { line: 43, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 43, column: 33, }, end: Position { line: 43, column: 34, }, }, }, ), ], }, ), then: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 43, column: 40, }, end: Position { line: 43, column: 48, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 43, column: 49, }, end: Position { line: 43, column: 50, }, }, }, ), ], }, ), else_: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isString", span: Span { start: Position { line: 44, column: 17, }, end: Position { line: 44, column: 25, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 44, column: 26, }, end: Position { line: 44, column: 27, }, }, }, ), ], }, ), then: Identifier( Identifier { id: "v", span: Span { start: Position { line: 44, column: 33, }, end: Position { line: 44, column: 34, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isCoercibleToString", span: Span { start: Position { line: 45, column: 17, }, end: Position { line: 45, column: 36, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 45, column: 37, }, end: Position { line: 45, column: 38, }, }, }, ), ], }, ), then: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 45, column: 44, }, end: Position { line: 45, column: 52, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 45, column: 53, }, end: Position { line: 45, column: 54, }, }, }, ), ], }, ), else_: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "abort", span: Span { start: Position { line: 46, column: 14, }, end: Position { line: 46, column: 19, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "The nix conf value: ", span: Span { start: Position { line: 46, column: 21, }, end: Position { line: 46, column: 57, }, }, }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toPretty", span: Span { start: Position { line: 46, column: 43, }, end: Position { line: 46, column: 51, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 46, column: 52, }, end: Position { line: 46, column: 54, }, }, }, ), Identifier( Identifier { id: "v", span: Span { start: Position { line: 46, column: 55, }, end: Position { line: 46, column: 56, }, }, }, ), ], }, ), }, ), Raw( PartRaw { content: " can not be encoded", span: Span { start: Position { line: 46, column: 21, }, end: Position { line: 46, column: 76, }, }, }, ), ], span: Span { start: Position { line: 46, column: 20, }, end: Position { line: 46, column: 77, }, }, }, ), ], }, ), span: Span { start: Position { line: 45, column: 14, }, end: Position { line: 46, column: 77, }, }, }, ), span: Span { start: Position { line: 44, column: 14, }, end: Position { line: 46, column: 77, }, }, }, ), span: Span { start: Position { line: 43, column: 14, }, end: Position { line: 46, column: 77, }, }, }, ), span: Span { start: Position { line: 42, column: 14, }, end: Position { line: 46, column: 77, }, }, }, ), span: Span { start: Position { line: 41, column: 14, }, end: Position { line: 46, column: 77, }, }, }, ), span: Span { start: Position { line: 40, column: 14, }, end: Position { line: 46, column: 77, }, }, }, ), span: Span { start: Position { line: 39, column: 14, }, end: Position { line: 46, column: 77, }, }, }, ), span: Span { start: Position { line: 38, column: 14, }, end: Position { line: 46, column: 77, }, }, }, ), span: Span { start: Position { line: 37, column: 9, }, end: Position { line: 46, column: 77, }, }, }, ), span: Span { start: Position { line: 36, column: 23, }, end: Position { line: 46, column: 77, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "mkKeyValue", span: Span { start: Position { line: 48, column: 7, }, end: Position { line: 48, column: 17, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "k", }, ), body: Function( Function { head: Simple( FunctionHeadSimple { identifier: "v", }, ), body: String( String_ { parts: [ Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "escape", span: Span { start: Position { line: 48, column: 29, }, end: Position { line: 48, column: 35, }, }, }, ), arguments: [ List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "=", span: Span { start: Position { line: 48, column: 39, }, end: Position { line: 48, column: 40, }, }, }, ), ], span: Span { start: Position { line: 48, column: 38, }, end: Position { line: 48, column: 41, }, }, }, ), ], span: Span { start: Position { line: 48, column: 36, }, end: Position { line: 48, column: 43, }, }, }, ), Identifier( Identifier { id: "k", span: Span { start: Position { line: 48, column: 44, }, end: Position { line: 48, column: 45, }, }, }, ), ], }, ), }, ), Raw( PartRaw { content: " = ", span: Span { start: Position { line: 48, column: 27, }, end: Position { line: 48, column: 49, }, }, }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkValueString", span: Span { start: Position { line: 48, column: 51, }, end: Position { line: 48, column: 64, }, }, }, ), arguments: [ Identifier( Identifier { id: "v", span: Span { start: Position { line: 48, column: 65, }, end: Position { line: 48, column: 66, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 48, column: 26, }, end: Position { line: 48, column: 68, }, }, }, ), span: Span { start: Position { line: 48, column: 23, }, end: Position { line: 48, column: 68, }, }, }, ), span: Span { start: Position { line: 48, column: 20, }, end: Position { line: 48, column: 68, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "mkKeyValuePairs", span: Span { start: Position { line: 50, column: 7, }, end: Position { line: 50, column: 22, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "attrs", }, ), body: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "concatStringsSep", span: Span { start: Position { line: 50, column: 32, }, end: Position { line: 50, column: 48, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "\n", span: Span { start: Position { line: 50, column: 50, }, end: Position { line: 50, column: 52, }, }, }, ), ], span: Span { start: Position { line: 50, column: 49, }, end: Position { line: 50, column: 53, }, }, }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mapAttrsToList", span: Span { start: Position { line: 50, column: 55, }, end: Position { line: 50, column: 69, }, }, }, ), arguments: [ Identifier( Identifier { id: "mkKeyValue", span: Span { start: Position { line: 50, column: 70, }, end: Position { line: 50, column: 80, }, }, }, ), Identifier( Identifier { id: "attrs", span: Span { start: Position { line: 50, column: 81, }, end: Position { line: 50, column: 86, }, }, }, ), ], }, ), ], }, ), span: Span { start: Position { line: 50, column: 25, }, end: Position { line: 50, column: 87, }, }, }, ), }, ), ], target: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 53, column: 5, }, end: Position { line: 53, column: 9, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "writeTextFile", span: Span { start: Position { line: 53, column: 10, }, end: Position { line: 53, column: 23, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "name", span: Span { start: Position { line: 54, column: 7, }, end: Position { line: 54, column: 11, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "nix.conf", span: Span { start: Position { line: 54, column: 15, }, end: Position { line: 54, column: 23, }, }, }, ), ], span: Span { start: Position { line: 54, column: 14, }, end: Position { line: 54, column: 24, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "text", span: Span { start: Position { line: 55, column: 7, }, end: Position { line: 55, column: 11, }, }, }, ), ], to: IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "# WARNING: this file is generated from the nix.* options in\n# your NixOS configuration, typically\n# /etc/nixos/configuration.nix. Do not edit it!\n", span: Span { start: Position { line: 56, column: 1, }, end: Position { line: 59, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkKeyValuePairs", span: Span { start: Position { line: 59, column: 11, }, end: Position { line: 59, column: 26, }, }, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 59, column: 27, }, end: Position { line: 59, column: 30, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "settings", span: Span { start: Position { line: 59, column: 31, }, end: Position { line: 59, column: 39, }, }, }, ), ], default: None, }, ), ], }, ), }, ), Raw( PartRaw { content: "\n", span: Span { start: Position { line: 56, column: 1, }, end: Position { line: 60, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 60, column: 11, }, end: Position { line: 60, column: 14, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "extraOptions", span: Span { start: Position { line: 60, column: 15, }, end: Position { line: 60, column: 27, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: "\n", span: Span { start: Position { line: 56, column: 1, }, end: Position { line: 61, column: 7, }, }, }, ), ], span: Span { start: Position { line: 55, column: 14, }, end: Position { line: 61, column: 9, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "checkPhase", span: Span { start: Position { line: 62, column: 7, }, end: Position { line: 62, column: 17, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 62, column: 20, }, end: Position { line: 62, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "optionalString", span: Span { start: Position { line: 62, column: 24, }, end: Position { line: 62, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 62, column: 39, }, end: Position { line: 62, column: 42, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "checkConfig", span: Span { start: Position { line: 62, column: 43, }, end: Position { line: 62, column: 54, }, }, }, ), ], default: None, }, ), IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 63, column: 12, }, end: Position { line: 63, column: 16, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "stdenv", span: Span { start: Position { line: 63, column: 17, }, end: Position { line: 63, column: 23, }, }, }, ), Raw( PartRaw { content: "hostPlatform", span: Span { start: Position { line: 63, column: 24, }, end: Position { line: 63, column: 36, }, }, }, ), ], default: None, }, ), operator: NotEqualTo, right: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 63, column: 40, }, end: Position { line: 63, column: 44, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "stdenv", span: Span { start: Position { line: 63, column: 45, }, end: Position { line: 63, column: 51, }, }, }, ), Raw( PartRaw { content: "buildPlatform", span: Span { start: Position { line: 63, column: 52, }, end: Position { line: 63, column: 65, }, }, }, ), ], default: None, }, ), }, ), then: IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "echo \"Ignoring validation for cross-compilation\"\n", span: Span { start: Position { line: 64, column: 1, }, end: Position { line: 65, column: 9, }, }, }, ), ], span: Span { start: Position { line: 63, column: 71, }, end: Position { line: 65, column: 11, }, }, }, ), else_: IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "echo \"Validating generated nix.conf\"\nln -s $out ./nix.conf\nset -e\nset +o pipefail\nNIX_CONF_DIR=$PWD \\\n ", span: Span { start: Position { line: 67, column: 1, }, end: Position { line: 72, column: 13, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 72, column: 15, }, end: Position { line: 72, column: 18, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "package", span: Span { start: Position { line: 72, column: 19, }, end: Position { line: 72, column: 26, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: "/bin/nix show-config ", span: Span { start: Position { line: 67, column: 1, }, end: Position { line: 72, column: 48, }, }, }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "optionalString", span: Span { start: Position { line: 72, column: 50, }, end: Position { line: 72, column: 64, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isNixAtLeast", span: Span { start: Position { line: 72, column: 66, }, end: Position { line: 72, column: 78, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "2.3pre", span: Span { start: Position { line: 72, column: 80, }, end: Position { line: 72, column: 86, }, }, }, ), ], span: Span { start: Position { line: 72, column: 79, }, end: Position { line: 72, column: 87, }, }, }, ), ], }, ), String( String_ { parts: [ Raw( PartRaw { content: "--no-net", span: Span { start: Position { line: 72, column: 90, }, end: Position { line: 72, column: 98, }, }, }, ), ], span: Span { start: Position { line: 72, column: 89, }, end: Position { line: 72, column: 99, }, }, }, ), ], }, ), }, ), Raw( PartRaw { content: " \\\n ", span: Span { start: Position { line: 67, column: 1, }, end: Position { line: 73, column: 15, }, }, }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "optionalString", span: Span { start: Position { line: 73, column: 17, }, end: Position { line: 73, column: 31, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isNixAtLeast", span: Span { start: Position { line: 73, column: 33, }, end: Position { line: 73, column: 45, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "2.4pre", span: Span { start: Position { line: 73, column: 47, }, end: Position { line: 73, column: 53, }, }, }, ), ], span: Span { start: Position { line: 73, column: 46, }, end: Position { line: 73, column: 54, }, }, }, ), ], }, ), String( String_ { parts: [ Raw( PartRaw { content: "--option experimental-features nix-command", span: Span { start: Position { line: 73, column: 57, }, end: Position { line: 73, column: 99, }, }, }, ), ], span: Span { start: Position { line: 73, column: 56, }, end: Position { line: 73, column: 100, }, }, }, ), ], }, ), }, ), Raw( PartRaw { content: " \\\n |& sed -e 's/^warning:/error:/' \\\n | (! grep ", span: Span { start: Position { line: 67, column: 1, }, end: Position { line: 75, column: 23, }, }, }, ), Raw( PartRaw { content: "'", span: Span { start: Position { line: 67, column: 1, }, end: Position { line: 75, column: 24, }, }, }, ), Interpolation( PartInterpolation { expression: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 75, column: 29, }, end: Position { line: 75, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "checkAllErrors", span: Span { start: Position { line: 75, column: 33, }, end: Position { line: 75, column: 47, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "^error:", span: Span { start: Position { line: 75, column: 54, }, end: Position { line: 75, column: 61, }, }, }, ), ], span: Span { start: Position { line: 75, column: 53, }, end: Position { line: 75, column: 62, }, }, }, ), else_: String( String_ { parts: [ Raw( PartRaw { content: "^error: unknown setting", span: Span { start: Position { line: 75, column: 69, }, end: Position { line: 75, column: 92, }, }, }, ), ], span: Span { start: Position { line: 75, column: 68, }, end: Position { line: 75, column: 93, }, }, }, ), span: Span { start: Position { line: 75, column: 26, }, end: Position { line: 75, column: 93, }, }, }, ), }, ), Raw( PartRaw { content: "')\nset -o pipefail\n", span: Span { start: Position { line: 67, column: 1, }, end: Position { line: 77, column: 9, }, }, }, ), ], span: Span { start: Position { line: 66, column: 14, }, end: Position { line: 77, column: 11, }, }, }, ), span: Span { start: Position { line: 63, column: 9, }, end: Position { line: 77, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 53, column: 24, }, end: Position { line: 78, column: 6, }, }, }, ), ], }, ), span: Span { start: Position { line: 34, column: 5, }, end: Position { line: 78, column: 6, }, }, }, ), span: Span { start: Position { line: 33, column: 5, }, end: Position { line: 78, column: 6, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "legacyConfMappings", span: Span { start: Position { line: 80, column: 3, }, end: Position { line: 80, column: 21, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "useSandbox", span: Span { start: Position { line: 81, column: 5, }, end: Position { line: 81, column: 15, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "sandbox", span: Span { start: Position { line: 81, column: 19, }, end: Position { line: 81, column: 26, }, }, }, ), ], span: Span { start: Position { line: 81, column: 18, }, end: Position { line: 81, column: 27, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "buildCores", span: Span { start: Position { line: 82, column: 5, }, end: Position { line: 82, column: 15, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "cores", span: Span { start: Position { line: 82, column: 19, }, end: Position { line: 82, column: 24, }, }, }, ), ], span: Span { start: Position { line: 82, column: 18, }, end: Position { line: 82, column: 25, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "maxJobs", span: Span { start: Position { line: 83, column: 5, }, end: Position { line: 83, column: 12, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "max-jobs", span: Span { start: Position { line: 83, column: 16, }, end: Position { line: 83, column: 24, }, }, }, ), ], span: Span { start: Position { line: 83, column: 15, }, end: Position { line: 83, column: 25, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sandboxPaths", span: Span { start: Position { line: 84, column: 5, }, end: Position { line: 84, column: 17, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "extra-sandbox-paths", span: Span { start: Position { line: 84, column: 21, }, end: Position { line: 84, column: 40, }, }, }, ), ], span: Span { start: Position { line: 84, column: 20, }, end: Position { line: 84, column: 41, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "binaryCaches", span: Span { start: Position { line: 85, column: 5, }, end: Position { line: 85, column: 17, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "substituters", span: Span { start: Position { line: 85, column: 21, }, end: Position { line: 85, column: 33, }, }, }, ), ], span: Span { start: Position { line: 85, column: 20, }, end: Position { line: 85, column: 34, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "trustedBinaryCaches", span: Span { start: Position { line: 86, column: 5, }, end: Position { line: 86, column: 24, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "trusted-substituters", span: Span { start: Position { line: 86, column: 28, }, end: Position { line: 86, column: 48, }, }, }, ), ], span: Span { start: Position { line: 86, column: 27, }, end: Position { line: 86, column: 49, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "binaryCachePublicKeys", span: Span { start: Position { line: 87, column: 5, }, end: Position { line: 87, column: 26, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "trusted-public-keys", span: Span { start: Position { line: 87, column: 30, }, end: Position { line: 87, column: 49, }, }, }, ), ], span: Span { start: Position { line: 87, column: 29, }, end: Position { line: 87, column: 50, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "autoOptimiseStore", span: Span { start: Position { line: 88, column: 5, }, end: Position { line: 88, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "auto-optimise-store", span: Span { start: Position { line: 88, column: 26, }, end: Position { line: 88, column: 45, }, }, }, ), ], span: Span { start: Position { line: 88, column: 25, }, end: Position { line: 88, column: 46, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "requireSignedBinaryCaches", span: Span { start: Position { line: 89, column: 5, }, end: Position { line: 89, column: 30, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "require-sigs", span: Span { start: Position { line: 89, column: 34, }, end: Position { line: 89, column: 46, }, }, }, ), ], span: Span { start: Position { line: 89, column: 33, }, end: Position { line: 89, column: 47, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "trustedUsers", span: Span { start: Position { line: 90, column: 5, }, end: Position { line: 90, column: 17, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "trusted-users", span: Span { start: Position { line: 90, column: 21, }, end: Position { line: 90, column: 34, }, }, }, ), ], span: Span { start: Position { line: 90, column: 20, }, end: Position { line: 90, column: 35, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "allowedUsers", span: Span { start: Position { line: 91, column: 5, }, end: Position { line: 91, column: 17, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "allowed-users", span: Span { start: Position { line: 91, column: 21, }, end: Position { line: 91, column: 34, }, }, }, ), ], span: Span { start: Position { line: 91, column: 20, }, end: Position { line: 91, column: 35, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "systemFeatures", span: Span { start: Position { line: 92, column: 5, }, end: Position { line: 92, column: 19, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "system-features", span: Span { start: Position { line: 92, column: 23, }, end: Position { line: 92, column: 38, }, }, }, ), ], span: Span { start: Position { line: 92, column: 22, }, end: Position { line: 92, column: 39, }, }, }, ), }, ), ], span: Span { start: Position { line: 80, column: 24, }, end: Position { line: 93, column: 4, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "semanticConfType", span: Span { start: Position { line: 95, column: 3, }, end: Position { line: 95, column: 19, }, }, }, ), ], to: With( With { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 95, column: 27, }, end: Position { line: 95, column: 32, }, }, }, ), target: LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "confAtom", span: Span { start: Position { line: 97, column: 7, }, end: Position { line: 97, column: 15, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "nullOr", span: Span { start: Position { line: 97, column: 18, }, end: Position { line: 97, column: 24, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "oneOf", span: Span { start: Position { line: 98, column: 10, }, end: Position { line: 98, column: 15, }, }, }, ), arguments: [ List( List { elements: [ Identifier( Identifier { id: "bool", span: Span { start: Position { line: 99, column: 11, }, end: Position { line: 99, column: 15, }, }, }, ), Identifier( Identifier { id: "int", span: Span { start: Position { line: 100, column: 11, }, end: Position { line: 100, column: 14, }, }, }, ), Identifier( Identifier { id: "float", span: Span { start: Position { line: 101, column: 11, }, end: Position { line: 101, column: 16, }, }, }, ), Identifier( Identifier { id: "str", span: Span { start: Position { line: 102, column: 11, }, end: Position { line: 102, column: 14, }, }, }, ), Identifier( Identifier { id: "path", span: Span { start: Position { line: 103, column: 11, }, end: Position { line: 103, column: 15, }, }, }, ), Identifier( Identifier { id: "package", span: Span { start: Position { line: 104, column: 11, }, end: Position { line: 104, column: 18, }, }, }, ), ], span: Span { start: Position { line: 98, column: 16, }, end: Position { line: 105, column: 10, }, }, }, ), ], }, ), ], }, ), operator: Update, right: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 106, column: 9, }, end: Position { line: 106, column: 20, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "Nix config atom (null, bool, int, float, str, path or package)", span: Span { start: Position { line: 106, column: 24, }, end: Position { line: 106, column: 86, }, }, }, ), ], span: Span { start: Position { line: 106, column: 23, }, end: Position { line: 106, column: 87, }, }, }, ), }, ), ], span: Span { start: Position { line: 105, column: 15, }, end: Position { line: 107, column: 8, }, }, }, ), }, ), }, ), ], target: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "attrsOf", span: Span { start: Position { line: 109, column: 5, }, end: Position { line: 109, column: 12, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "either", span: Span { start: Position { line: 109, column: 14, }, end: Position { line: 109, column: 20, }, }, }, ), arguments: [ Identifier( Identifier { id: "confAtom", span: Span { start: Position { line: 109, column: 21, }, end: Position { line: 109, column: 29, }, }, }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "listOf", span: Span { start: Position { line: 109, column: 31, }, end: Position { line: 109, column: 37, }, }, }, ), arguments: [ Identifier( Identifier { id: "confAtom", span: Span { start: Position { line: 109, column: 38, }, end: Position { line: 109, column: 46, }, }, }, ), ], }, ), ], }, ), ], }, ), span: Span { start: Position { line: 96, column: 5, }, end: Position { line: 109, column: 48, }, }, }, ), span: Span { start: Position { line: 95, column: 22, }, end: Position { line: 109, column: 48, }, }, }, ), }, ), ], target: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "imports", span: Span { start: Position { line: 114, column: 3, }, end: Position { line: 114, column: 10, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: List( List { elements: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkRenamedOptionModuleWith", span: Span { start: Position { line: 115, column: 6, }, end: Position { line: 115, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sinceRelease", span: Span { start: Position { line: 115, column: 34, }, end: Position { line: 115, column: 46, }, }, }, ), ], to: Integer( Integer { value: "2003", span: Span { start: Position { line: 115, column: 49, }, end: Position { line: 115, column: 53, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "from", span: Span { start: Position { line: 115, column: 55, }, end: Position { line: 115, column: 59, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 115, column: 65, }, end: Position { line: 115, column: 68, }, }, }, ), ], span: Span { start: Position { line: 115, column: 64, }, end: Position { line: 115, column: 69, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "useChroot", span: Span { start: Position { line: 115, column: 71, }, end: Position { line: 115, column: 80, }, }, }, ), ], span: Span { start: Position { line: 115, column: 70, }, end: Position { line: 115, column: 81, }, }, }, ), ], span: Span { start: Position { line: 115, column: 62, }, end: Position { line: 115, column: 83, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "to", span: Span { start: Position { line: 115, column: 85, }, end: Position { line: 115, column: 87, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 115, column: 93, }, end: Position { line: 115, column: 96, }, }, }, ), ], span: Span { start: Position { line: 115, column: 92, }, end: Position { line: 115, column: 97, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "useSandbox", span: Span { start: Position { line: 115, column: 99, }, end: Position { line: 115, column: 109, }, }, }, ), ], span: Span { start: Position { line: 115, column: 98, }, end: Position { line: 115, column: 110, }, }, }, ), ], span: Span { start: Position { line: 115, column: 90, }, end: Position { line: 115, column: 112, }, }, }, ), }, ), ], span: Span { start: Position { line: 115, column: 32, }, end: Position { line: 115, column: 115, }, }, }, ), ], }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkRenamedOptionModuleWith", span: Span { start: Position { line: 116, column: 6, }, end: Position { line: 116, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sinceRelease", span: Span { start: Position { line: 116, column: 34, }, end: Position { line: 116, column: 46, }, }, }, ), ], to: Integer( Integer { value: "2003", span: Span { start: Position { line: 116, column: 49, }, end: Position { line: 116, column: 53, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "from", span: Span { start: Position { line: 116, column: 55, }, end: Position { line: 116, column: 59, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 116, column: 65, }, end: Position { line: 116, column: 68, }, }, }, ), ], span: Span { start: Position { line: 116, column: 64, }, end: Position { line: 116, column: 69, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "chrootDirs", span: Span { start: Position { line: 116, column: 71, }, end: Position { line: 116, column: 81, }, }, }, ), ], span: Span { start: Position { line: 116, column: 70, }, end: Position { line: 116, column: 82, }, }, }, ), ], span: Span { start: Position { line: 116, column: 62, }, end: Position { line: 116, column: 84, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "to", span: Span { start: Position { line: 116, column: 86, }, end: Position { line: 116, column: 88, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 116, column: 94, }, end: Position { line: 116, column: 97, }, }, }, ), ], span: Span { start: Position { line: 116, column: 93, }, end: Position { line: 116, column: 98, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "sandboxPaths", span: Span { start: Position { line: 116, column: 100, }, end: Position { line: 116, column: 112, }, }, }, ), ], span: Span { start: Position { line: 116, column: 99, }, end: Position { line: 116, column: 113, }, }, }, ), ], span: Span { start: Position { line: 116, column: 91, }, end: Position { line: 116, column: 115, }, }, }, ), }, ), ], span: Span { start: Position { line: 116, column: 32, }, end: Position { line: 116, column: 118, }, }, }, ), ], }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkRenamedOptionModuleWith", span: Span { start: Position { line: 117, column: 6, }, end: Position { line: 117, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sinceRelease", span: Span { start: Position { line: 117, column: 34, }, end: Position { line: 117, column: 46, }, }, }, ), ], to: Integer( Integer { value: "2205", span: Span { start: Position { line: 117, column: 49, }, end: Position { line: 117, column: 53, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "from", span: Span { start: Position { line: 117, column: 55, }, end: Position { line: 117, column: 59, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 117, column: 65, }, end: Position { line: 117, column: 68, }, }, }, ), ], span: Span { start: Position { line: 117, column: 64, }, end: Position { line: 117, column: 69, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "daemonIONiceLevel", span: Span { start: Position { line: 117, column: 71, }, end: Position { line: 117, column: 88, }, }, }, ), ], span: Span { start: Position { line: 117, column: 70, }, end: Position { line: 117, column: 89, }, }, }, ), ], span: Span { start: Position { line: 117, column: 62, }, end: Position { line: 117, column: 91, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "to", span: Span { start: Position { line: 117, column: 93, }, end: Position { line: 117, column: 95, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 117, column: 101, }, end: Position { line: 117, column: 104, }, }, }, ), ], span: Span { start: Position { line: 117, column: 100, }, end: Position { line: 117, column: 105, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "daemonIOSchedPriority", span: Span { start: Position { line: 117, column: 107, }, end: Position { line: 117, column: 128, }, }, }, ), ], span: Span { start: Position { line: 117, column: 106, }, end: Position { line: 117, column: 129, }, }, }, ), ], span: Span { start: Position { line: 117, column: 98, }, end: Position { line: 117, column: 131, }, }, }, ), }, ), ], span: Span { start: Position { line: 117, column: 32, }, end: Position { line: 117, column: 134, }, }, }, ), ], }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkRemovedOptionModule", span: Span { start: Position { line: 118, column: 6, }, end: Position { line: 118, column: 27, }, }, }, ), arguments: [ List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 118, column: 31, }, end: Position { line: 118, column: 34, }, }, }, ), ], span: Span { start: Position { line: 118, column: 30, }, end: Position { line: 118, column: 35, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "daemonNiceLevel", span: Span { start: Position { line: 118, column: 37, }, end: Position { line: 118, column: 52, }, }, }, ), ], span: Span { start: Position { line: 118, column: 36, }, end: Position { line: 118, column: 53, }, }, }, ), ], span: Span { start: Position { line: 118, column: 28, }, end: Position { line: 118, column: 55, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "Consider nix.daemonCPUSchedPolicy instead.", span: Span { start: Position { line: 118, column: 57, }, end: Position { line: 118, column: 99, }, }, }, ), ], span: Span { start: Position { line: 118, column: 56, }, end: Position { line: 118, column: 100, }, }, }, ), ], }, ), ], span: Span { start: Position { line: 114, column: 13, }, end: Position { line: 119, column: 4, }, }, }, ), operator: Concatenation, right: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mapAttrsToList", span: Span { start: Position { line: 119, column: 8, }, end: Position { line: 119, column: 22, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "oldConf", }, ), body: Function( Function { head: Simple( FunctionHeadSimple { identifier: "newConf", }, ), body: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkRenamedOptionModuleWith", span: Span { start: Position { line: 119, column: 42, }, end: Position { line: 119, column: 67, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sinceRelease", span: Span { start: Position { line: 119, column: 70, }, end: Position { line: 119, column: 82, }, }, }, ), ], to: Integer( Integer { value: "2205", span: Span { start: Position { line: 119, column: 85, }, end: Position { line: 119, column: 89, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "from", span: Span { start: Position { line: 119, column: 91, }, end: Position { line: 119, column: 95, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 119, column: 101, }, end: Position { line: 119, column: 104, }, }, }, ), ], span: Span { start: Position { line: 119, column: 100, }, end: Position { line: 119, column: 105, }, }, }, ), Identifier( Identifier { id: "oldConf", span: Span { start: Position { line: 119, column: 106, }, end: Position { line: 119, column: 113, }, }, }, ), ], span: Span { start: Position { line: 119, column: 98, }, end: Position { line: 119, column: 115, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "to", span: Span { start: Position { line: 119, column: 117, }, end: Position { line: 119, column: 119, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 119, column: 125, }, end: Position { line: 119, column: 128, }, }, }, ), ], span: Span { start: Position { line: 119, column: 124, }, end: Position { line: 119, column: 129, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "settings", span: Span { start: Position { line: 119, column: 131, }, end: Position { line: 119, column: 139, }, }, }, ), ], span: Span { start: Position { line: 119, column: 130, }, end: Position { line: 119, column: 140, }, }, }, ), Identifier( Identifier { id: "newConf", span: Span { start: Position { line: 119, column: 141, }, end: Position { line: 119, column: 148, }, }, }, ), ], span: Span { start: Position { line: 119, column: 122, }, end: Position { line: 119, column: 150, }, }, }, ), }, ), ], span: Span { start: Position { line: 119, column: 68, }, end: Position { line: 119, column: 153, }, }, }, ), ], }, ), span: Span { start: Position { line: 119, column: 33, }, end: Position { line: 119, column: 153, }, }, }, ), span: Span { start: Position { line: 119, column: 24, }, end: Position { line: 119, column: 153, }, }, }, ), Identifier( Identifier { id: "legacyConfMappings", span: Span { start: Position { line: 119, column: 155, }, end: Position { line: 119, column: 173, }, }, }, ), ], }, ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "options", span: Span { start: Position { line: 123, column: 3, }, end: Position { line: 123, column: 10, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 125, column: 5, }, end: Position { line: 125, column: 8, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "enable", span: Span { start: Position { line: 127, column: 7, }, end: Position { line: 127, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 127, column: 16, }, end: Position { line: 127, column: 24, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 128, column: 9, }, end: Position { line: 128, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 128, column: 16, }, end: Position { line: 128, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "bool", span: Span { start: Position { line: 128, column: 22, }, end: Position { line: 128, column: 26, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 129, column: 9, }, end: Position { line: 129, column: 16, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 129, column: 19, }, end: Position { line: 129, column: 23, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 130, column: 9, }, end: Position { line: 130, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 130, column: 23, }, end: Position { line: 130, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 130, column: 27, }, end: Position { line: 130, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "Whether to enable Nix.\nDisabling Nix makes the system hard to modify and the Nix programs and configuration will not be made available by NixOS itself.\n", span: Span { start: Position { line: 131, column: 1, }, end: Position { line: 133, column: 9, }, }, }, ), ], span: Span { start: Position { line: 130, column: 33, }, end: Position { line: 133, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 127, column: 25, }, end: Position { line: 134, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "package", span: Span { start: Position { line: 136, column: 7, }, end: Position { line: 136, column: 14, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 136, column: 17, }, end: Position { line: 136, column: 25, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 137, column: 9, }, end: Position { line: 137, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 137, column: 16, }, end: Position { line: 137, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "package", span: Span { start: Position { line: 137, column: 22, }, end: Position { line: 137, column: 29, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 138, column: 9, }, end: Position { line: 138, column: 16, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 138, column: 19, }, end: Position { line: 138, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 138, column: 24, }, end: Position { line: 138, column: 27, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "defaultText", span: Span { start: Position { line: 139, column: 9, }, end: Position { line: 139, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "literalExpression", span: Span { start: Position { line: 139, column: 23, }, end: Position { line: 139, column: 40, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "pkgs.nix", span: Span { start: Position { line: 139, column: 42, }, end: Position { line: 139, column: 50, }, }, }, ), ], span: Span { start: Position { line: 139, column: 41, }, end: Position { line: 139, column: 51, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 140, column: 9, }, end: Position { line: 140, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 140, column: 23, }, end: Position { line: 140, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 140, column: 27, }, end: Position { line: 140, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "This option specifies the Nix package instance to use throughout the system.\n", span: Span { start: Position { line: 141, column: 1, }, end: Position { line: 142, column: 9, }, }, }, ), ], span: Span { start: Position { line: 140, column: 33, }, end: Position { line: 142, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 136, column: 26, }, end: Position { line: 143, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "distributedBuilds", span: Span { start: Position { line: 145, column: 7, }, end: Position { line: 145, column: 24, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 145, column: 27, }, end: Position { line: 145, column: 35, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 146, column: 9, }, end: Position { line: 146, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 146, column: 16, }, end: Position { line: 146, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "bool", span: Span { start: Position { line: 146, column: 22, }, end: Position { line: 146, column: 26, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 147, column: 9, }, end: Position { line: 147, column: 16, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 147, column: 19, }, end: Position { line: 147, column: 24, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 148, column: 9, }, end: Position { line: 148, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 148, column: 23, }, end: Position { line: 148, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 148, column: 27, }, end: Position { line: 148, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "Whether to distribute builds to the machines listed in\n{option}`nix.buildMachines`.\n", span: Span { start: Position { line: 149, column: 1, }, end: Position { line: 151, column: 9, }, }, }, ), ], span: Span { start: Position { line: 148, column: 33, }, end: Position { line: 151, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 145, column: 36, }, end: Position { line: 152, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "daemonCPUSchedPolicy", span: Span { start: Position { line: 154, column: 7, }, end: Position { line: 154, column: 27, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 154, column: 30, }, end: Position { line: 154, column: 38, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 155, column: 9, }, end: Position { line: 155, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 155, column: 16, }, end: Position { line: 155, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "enum", span: Span { start: Position { line: 155, column: 22, }, end: Position { line: 155, column: 26, }, }, }, ), ], default: None, }, ), arguments: [ List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "other", span: Span { start: Position { line: 155, column: 30, }, end: Position { line: 155, column: 35, }, }, }, ), ], span: Span { start: Position { line: 155, column: 29, }, end: Position { line: 155, column: 36, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "batch", span: Span { start: Position { line: 155, column: 38, }, end: Position { line: 155, column: 43, }, }, }, ), ], span: Span { start: Position { line: 155, column: 37, }, end: Position { line: 155, column: 44, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "idle", span: Span { start: Position { line: 155, column: 46, }, end: Position { line: 155, column: 50, }, }, }, ), ], span: Span { start: Position { line: 155, column: 45, }, end: Position { line: 155, column: 51, }, }, }, ), ], span: Span { start: Position { line: 155, column: 27, }, end: Position { line: 155, column: 53, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 156, column: 9, }, end: Position { line: 156, column: 16, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "other", span: Span { start: Position { line: 156, column: 20, }, end: Position { line: 156, column: 25, }, }, }, ), ], span: Span { start: Position { line: 156, column: 19, }, end: Position { line: 156, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 157, column: 9, }, end: Position { line: 157, column: 16, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "batch", span: Span { start: Position { line: 157, column: 20, }, end: Position { line: 157, column: 25, }, }, }, ), ], span: Span { start: Position { line: 157, column: 19, }, end: Position { line: 157, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 158, column: 9, }, end: Position { line: 158, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 158, column: 23, }, end: Position { line: 158, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 158, column: 27, }, end: Position { line: 158, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "Nix daemon process CPU scheduling policy. This policy propagates to\nbuild processes. `other` is the default scheduling\npolicy for regular tasks. The `batch` policy is\nsimilar to `other`, but optimised for\nnon-interactive tasks. `idle` is for extremely\nlow-priority tasks that should only be run when no other task\nrequires CPU time.\n\nPlease note that while using the `idle` policy may\ngreatly improve responsiveness of a system performing expensive\nbuilds, it may also slow down and potentially starve crucial\nconfiguration updates during load.\n\n`idle` may therefore be a sensible policy for\nsystems that experience only intermittent phases of high CPU load,\nsuch as desktop or portable computers used interactively. Other\nsystems should use the `other` or\n`batch` policy instead.\n\nFor more fine-grained resource control, please refer to\n{manpage}`systemd.resource-control(5)` and adjust\n{option}`systemd.services.nix-daemon` directly.\n", span: Span { start: Position { line: 159, column: 1, }, end: Position { line: 181, column: 7, }, }, }, ), ], span: Span { start: Position { line: 158, column: 33, }, end: Position { line: 181, column: 9, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 154, column: 39, }, end: Position { line: 182, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "daemonIOSchedClass", span: Span { start: Position { line: 184, column: 7, }, end: Position { line: 184, column: 25, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 184, column: 28, }, end: Position { line: 184, column: 36, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 185, column: 9, }, end: Position { line: 185, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 185, column: 16, }, end: Position { line: 185, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "enum", span: Span { start: Position { line: 185, column: 22, }, end: Position { line: 185, column: 26, }, }, }, ), ], default: None, }, ), arguments: [ List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "best-effort", span: Span { start: Position { line: 185, column: 30, }, end: Position { line: 185, column: 41, }, }, }, ), ], span: Span { start: Position { line: 185, column: 29, }, end: Position { line: 185, column: 42, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "idle", span: Span { start: Position { line: 185, column: 44, }, end: Position { line: 185, column: 48, }, }, }, ), ], span: Span { start: Position { line: 185, column: 43, }, end: Position { line: 185, column: 49, }, }, }, ), ], span: Span { start: Position { line: 185, column: 27, }, end: Position { line: 185, column: 51, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 186, column: 9, }, end: Position { line: 186, column: 16, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "best-effort", span: Span { start: Position { line: 186, column: 20, }, end: Position { line: 186, column: 31, }, }, }, ), ], span: Span { start: Position { line: 186, column: 19, }, end: Position { line: 186, column: 32, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 187, column: 9, }, end: Position { line: 187, column: 16, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "idle", span: Span { start: Position { line: 187, column: 20, }, end: Position { line: 187, column: 24, }, }, }, ), ], span: Span { start: Position { line: 187, column: 19, }, end: Position { line: 187, column: 25, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 188, column: 9, }, end: Position { line: 188, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 188, column: 23, }, end: Position { line: 188, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 188, column: 27, }, end: Position { line: 188, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "Nix daemon process I/O scheduling class. This class propagates to\nbuild processes. `best-effort` is the default\nclass for regular tasks. The `idle` class is for\nextremely low-priority tasks that should only perform I/O when no\nother task does.\n\nPlease note that while using the `idle` scheduling\nclass can improve responsiveness of a system performing expensive\nbuilds, it might also slow down or starve crucial configuration\nupdates during load.\n\n`idle` may therefore be a sensible class for\nsystems that experience only intermittent phases of high I/O load,\nsuch as desktop or portable computers used interactively. Other\nsystems should use the `best-effort` class.\n", span: Span { start: Position { line: 189, column: 1, }, end: Position { line: 204, column: 7, }, }, }, ), ], span: Span { start: Position { line: 188, column: 33, }, end: Position { line: 204, column: 9, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 184, column: 37, }, end: Position { line: 205, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "daemonIOSchedPriority", span: Span { start: Position { line: 207, column: 7, }, end: Position { line: 207, column: 28, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 207, column: 31, }, end: Position { line: 207, column: 39, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 208, column: 9, }, end: Position { line: 208, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 208, column: 16, }, end: Position { line: 208, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "int", span: Span { start: Position { line: 208, column: 22, }, end: Position { line: 208, column: 25, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 209, column: 9, }, end: Position { line: 209, column: 16, }, }, }, ), ], to: Integer( Integer { value: "0", span: Span { start: Position { line: 209, column: 19, }, end: Position { line: 209, column: 20, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 210, column: 9, }, end: Position { line: 210, column: 16, }, }, }, ), ], to: Integer( Integer { value: "1", span: Span { start: Position { line: 210, column: 19, }, end: Position { line: 210, column: 20, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 211, column: 9, }, end: Position { line: 211, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 211, column: 23, }, end: Position { line: 211, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 211, column: 27, }, end: Position { line: 211, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "Nix daemon process I/O scheduling priority. This priority propagates\nto build processes. The supported priorities depend on the\nscheduling policy: With idle, priorities are not used in scheduling\ndecisions. best-effort supports values in the range 0 (high) to 7\n(low).\n", span: Span { start: Position { line: 212, column: 1, }, end: Position { line: 217, column: 9, }, }, }, ), ], span: Span { start: Position { line: 211, column: 33, }, end: Position { line: 217, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 207, column: 40, }, end: Position { line: 218, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "buildMachines", span: Span { start: Position { line: 220, column: 7, }, end: Position { line: 220, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 220, column: 23, }, end: Position { line: 220, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 221, column: 9, }, end: Position { line: 221, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 221, column: 16, }, end: Position { line: 221, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 221, column: 22, }, end: Position { line: 221, column: 28, }, }, }, ), ], default: None, }, ), arguments: [ FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 221, column: 30, }, end: Position { line: 221, column: 35, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "submodule", span: Span { start: Position { line: 221, column: 36, }, end: Position { line: 221, column: 45, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "options", span: Span { start: Position { line: 222, column: 11, }, end: Position { line: 222, column: 18, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "hostName", span: Span { start: Position { line: 223, column: 13, }, end: Position { line: 223, column: 21, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 223, column: 24, }, end: Position { line: 223, column: 32, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 224, column: 15, }, end: Position { line: 224, column: 19, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 224, column: 22, }, end: Position { line: 224, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 224, column: 28, }, end: Position { line: 224, column: 31, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 225, column: 15, }, end: Position { line: 225, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "nixbuilder.example.org", span: Span { start: Position { line: 225, column: 26, }, end: Position { line: 225, column: 48, }, }, }, ), ], span: Span { start: Position { line: 225, column: 25, }, end: Position { line: 225, column: 49, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 226, column: 15, }, end: Position { line: 226, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 226, column: 29, }, end: Position { line: 226, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 226, column: 33, }, end: Position { line: 226, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The hostname of the build machine.\n", span: Span { start: Position { line: 227, column: 1, }, end: Position { line: 228, column: 15, }, }, }, ), ], span: Span { start: Position { line: 226, column: 39, }, end: Position { line: 228, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 223, column: 33, }, end: Position { line: 229, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "protocol", span: Span { start: Position { line: 230, column: 13, }, end: Position { line: 230, column: 21, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 230, column: 24, }, end: Position { line: 230, column: 32, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 231, column: 15, }, end: Position { line: 231, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 231, column: 22, }, end: Position { line: 231, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "enum", span: Span { start: Position { line: 231, column: 28, }, end: Position { line: 231, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ List( List { elements: [ Identifier( Identifier { id: "null", span: Span { start: Position { line: 231, column: 35, }, end: Position { line: 231, column: 39, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "ssh", span: Span { start: Position { line: 231, column: 41, }, end: Position { line: 231, column: 44, }, }, }, ), ], span: Span { start: Position { line: 231, column: 40, }, end: Position { line: 231, column: 45, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "ssh-ng", span: Span { start: Position { line: 231, column: 47, }, end: Position { line: 231, column: 53, }, }, }, ), ], span: Span { start: Position { line: 231, column: 46, }, end: Position { line: 231, column: 54, }, }, }, ), ], span: Span { start: Position { line: 231, column: 33, }, end: Position { line: 231, column: 56, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 232, column: 15, }, end: Position { line: 232, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "ssh", span: Span { start: Position { line: 232, column: 26, }, end: Position { line: 232, column: 29, }, }, }, ), ], span: Span { start: Position { line: 232, column: 25, }, end: Position { line: 232, column: 30, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 233, column: 15, }, end: Position { line: 233, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "ssh-ng", span: Span { start: Position { line: 233, column: 26, }, end: Position { line: 233, column: 32, }, }, }, ), ], span: Span { start: Position { line: 233, column: 25, }, end: Position { line: 233, column: 33, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 234, column: 15, }, end: Position { line: 234, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 234, column: 29, }, end: Position { line: 234, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 234, column: 33, }, end: Position { line: 234, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The protocol used for communicating with the build machine.\nUse `ssh-ng` if your remote builder and your\nlocal Nix version support that improved protocol.\n\nUse `null` when trying to change the special localhost builder\nwithout a protocol which is for example used by hydra.\n", span: Span { start: Position { line: 235, column: 1, }, end: Position { line: 241, column: 15, }, }, }, ), ], span: Span { start: Position { line: 234, column: 39, }, end: Position { line: 241, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 230, column: 33, }, end: Position { line: 242, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 243, column: 13, }, end: Position { line: 243, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 243, column: 22, }, end: Position { line: 243, column: 30, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 244, column: 15, }, end: Position { line: 244, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 244, column: 22, }, end: Position { line: 244, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nullOr", span: Span { start: Position { line: 244, column: 28, }, end: Position { line: 244, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 244, column: 35, }, end: Position { line: 244, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 244, column: 41, }, end: Position { line: 244, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 245, column: 15, }, end: Position { line: 245, column: 22, }, }, }, ), ], to: Identifier( Identifier { id: "null", span: Span { start: Position { line: 245, column: 25, }, end: Position { line: 245, column: 29, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 246, column: 15, }, end: Position { line: 246, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "x86_64-linux", span: Span { start: Position { line: 246, column: 26, }, end: Position { line: 246, column: 38, }, }, }, ), ], span: Span { start: Position { line: 246, column: 25, }, end: Position { line: 246, column: 39, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 247, column: 15, }, end: Position { line: 247, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 247, column: 29, }, end: Position { line: 247, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 247, column: 33, }, end: Position { line: 247, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The system type the build machine can execute derivations on.\nEither this attribute or {var}`systems` must be\npresent, where {var}`system` takes precedence if\nboth are set.\n", span: Span { start: Position { line: 248, column: 1, }, end: Position { line: 252, column: 15, }, }, }, ), ], span: Span { start: Position { line: 247, column: 39, }, end: Position { line: 252, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 243, column: 31, }, end: Position { line: 253, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "systems", span: Span { start: Position { line: 254, column: 13, }, end: Position { line: 254, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 254, column: 23, }, end: Position { line: 254, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 255, column: 15, }, end: Position { line: 255, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 255, column: 22, }, end: Position { line: 255, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 255, column: 28, }, end: Position { line: 255, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 255, column: 35, }, end: Position { line: 255, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 255, column: 41, }, end: Position { line: 255, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 256, column: 15, }, end: Position { line: 256, column: 22, }, }, }, ), ], to: List( List { elements: [], span: Span { start: Position { line: 256, column: 25, }, end: Position { line: 256, column: 28, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 257, column: 15, }, end: Position { line: 257, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "x86_64-linux", span: Span { start: Position { line: 257, column: 28, }, end: Position { line: 257, column: 40, }, }, }, ), ], span: Span { start: Position { line: 257, column: 27, }, end: Position { line: 257, column: 41, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "aarch64-linux", span: Span { start: Position { line: 257, column: 43, }, end: Position { line: 257, column: 56, }, }, }, ), ], span: Span { start: Position { line: 257, column: 42, }, end: Position { line: 257, column: 57, }, }, }, ), ], span: Span { start: Position { line: 257, column: 25, }, end: Position { line: 257, column: 59, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 258, column: 15, }, end: Position { line: 258, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 258, column: 29, }, end: Position { line: 258, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 258, column: 33, }, end: Position { line: 258, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The system types the build machine can execute derivations on.\nEither this attribute or {var}`system` must be\npresent, where {var}`system` takes precedence if\nboth are set.\n", span: Span { start: Position { line: 259, column: 1, }, end: Position { line: 263, column: 15, }, }, }, ), ], span: Span { start: Position { line: 258, column: 39, }, end: Position { line: 263, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 254, column: 32, }, end: Position { line: 264, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sshUser", span: Span { start: Position { line: 265, column: 13, }, end: Position { line: 265, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 265, column: 23, }, end: Position { line: 265, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 266, column: 15, }, end: Position { line: 266, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 266, column: 22, }, end: Position { line: 266, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nullOr", span: Span { start: Position { line: 266, column: 28, }, end: Position { line: 266, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 266, column: 35, }, end: Position { line: 266, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 266, column: 41, }, end: Position { line: 266, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 267, column: 15, }, end: Position { line: 267, column: 22, }, }, }, ), ], to: Identifier( Identifier { id: "null", span: Span { start: Position { line: 267, column: 25, }, end: Position { line: 267, column: 29, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 268, column: 15, }, end: Position { line: 268, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "builder", span: Span { start: Position { line: 268, column: 26, }, end: Position { line: 268, column: 33, }, }, }, ), ], span: Span { start: Position { line: 268, column: 25, }, end: Position { line: 268, column: 34, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 269, column: 15, }, end: Position { line: 269, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 269, column: 29, }, end: Position { line: 269, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 269, column: 33, }, end: Position { line: 269, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The username to log in as on the remote host. This user must be\nable to log in and run nix commands non-interactively. It must\nalso be privileged to build derivations, so must be included in\n{option}`nix.settings.trusted-users`.\n", span: Span { start: Position { line: 270, column: 1, }, end: Position { line: 274, column: 15, }, }, }, ), ], span: Span { start: Position { line: 269, column: 39, }, end: Position { line: 274, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 265, column: 32, }, end: Position { line: 275, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sshKey", span: Span { start: Position { line: 276, column: 13, }, end: Position { line: 276, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 276, column: 22, }, end: Position { line: 276, column: 30, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 277, column: 15, }, end: Position { line: 277, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 277, column: 22, }, end: Position { line: 277, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nullOr", span: Span { start: Position { line: 277, column: 28, }, end: Position { line: 277, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 277, column: 35, }, end: Position { line: 277, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 277, column: 41, }, end: Position { line: 277, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 278, column: 15, }, end: Position { line: 278, column: 22, }, }, }, ), ], to: Identifier( Identifier { id: "null", span: Span { start: Position { line: 278, column: 25, }, end: Position { line: 278, column: 29, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 279, column: 15, }, end: Position { line: 279, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "/root/.ssh/id_buildhost_builduser", span: Span { start: Position { line: 279, column: 26, }, end: Position { line: 279, column: 59, }, }, }, ), ], span: Span { start: Position { line: 279, column: 25, }, end: Position { line: 279, column: 60, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 280, column: 15, }, end: Position { line: 280, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 280, column: 29, }, end: Position { line: 280, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 280, column: 33, }, end: Position { line: 280, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The path to the SSH private key with which to authenticate on\nthe build machine. The private key must not have a passphrase.\nIf null, the building user (root on NixOS machines) must have an\nappropriate ssh configuration to log in non-interactively.\n\nNote that for security reasons, this path must point to a file\nin the local filesystem, *not* to the nix store.\n", span: Span { start: Position { line: 281, column: 1, }, end: Position { line: 288, column: 15, }, }, }, ), ], span: Span { start: Position { line: 280, column: 39, }, end: Position { line: 288, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 276, column: 31, }, end: Position { line: 289, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "maxJobs", span: Span { start: Position { line: 290, column: 13, }, end: Position { line: 290, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 290, column: 23, }, end: Position { line: 290, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 291, column: 15, }, end: Position { line: 291, column: 19, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 291, column: 22, }, end: Position { line: 291, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "int", span: Span { start: Position { line: 291, column: 28, }, end: Position { line: 291, column: 31, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 292, column: 15, }, end: Position { line: 292, column: 22, }, }, }, ), ], to: Integer( Integer { value: "1", span: Span { start: Position { line: 292, column: 25, }, end: Position { line: 292, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 293, column: 15, }, end: Position { line: 293, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 293, column: 29, }, end: Position { line: 293, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 293, column: 33, }, end: Position { line: 293, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The number of concurrent jobs the build machine supports. The\nbuild machine will enforce its own limits, but this allows hydra\nto schedule better since there is no work-stealing between build\nmachines.\n", span: Span { start: Position { line: 294, column: 1, }, end: Position { line: 298, column: 15, }, }, }, ), ], span: Span { start: Position { line: 293, column: 39, }, end: Position { line: 298, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 290, column: 32, }, end: Position { line: 299, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "speedFactor", span: Span { start: Position { line: 300, column: 13, }, end: Position { line: 300, column: 24, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 300, column: 27, }, end: Position { line: 300, column: 35, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 301, column: 15, }, end: Position { line: 301, column: 19, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 301, column: 22, }, end: Position { line: 301, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "int", span: Span { start: Position { line: 301, column: 28, }, end: Position { line: 301, column: 31, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 302, column: 15, }, end: Position { line: 302, column: 22, }, }, }, ), ], to: Integer( Integer { value: "1", span: Span { start: Position { line: 302, column: 25, }, end: Position { line: 302, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 303, column: 15, }, end: Position { line: 303, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 303, column: 29, }, end: Position { line: 303, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 303, column: 33, }, end: Position { line: 303, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The relative speed of this builder. This is an arbitrary integer\nthat indicates the speed of this builder, relative to other\nbuilders. Higher is faster.\n", span: Span { start: Position { line: 304, column: 1, }, end: Position { line: 307, column: 15, }, }, }, ), ], span: Span { start: Position { line: 303, column: 39, }, end: Position { line: 307, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 300, column: 36, }, end: Position { line: 308, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "mandatoryFeatures", span: Span { start: Position { line: 309, column: 13, }, end: Position { line: 309, column: 30, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 309, column: 33, }, end: Position { line: 309, column: 41, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 310, column: 15, }, end: Position { line: 310, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 310, column: 22, }, end: Position { line: 310, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 310, column: 28, }, end: Position { line: 310, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 310, column: 35, }, end: Position { line: 310, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 310, column: 41, }, end: Position { line: 310, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 311, column: 15, }, end: Position { line: 311, column: 22, }, }, }, ), ], to: List( List { elements: [], span: Span { start: Position { line: 311, column: 25, }, end: Position { line: 311, column: 28, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 312, column: 15, }, end: Position { line: 312, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "big-parallel", span: Span { start: Position { line: 312, column: 28, }, end: Position { line: 312, column: 40, }, }, }, ), ], span: Span { start: Position { line: 312, column: 27, }, end: Position { line: 312, column: 41, }, }, }, ), ], span: Span { start: Position { line: 312, column: 25, }, end: Position { line: 312, column: 43, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 313, column: 15, }, end: Position { line: 313, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 313, column: 29, }, end: Position { line: 313, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 313, column: 33, }, end: Position { line: 313, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "A list of features mandatory for this builder. The builder will\nbe ignored for derivations that don't require all features in\nthis list. All mandatory features are automatically included in\n{var}`supportedFeatures`.\n", span: Span { start: Position { line: 314, column: 1, }, end: Position { line: 318, column: 15, }, }, }, ), ], span: Span { start: Position { line: 313, column: 39, }, end: Position { line: 318, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 309, column: 42, }, end: Position { line: 319, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "supportedFeatures", span: Span { start: Position { line: 320, column: 13, }, end: Position { line: 320, column: 30, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 320, column: 33, }, end: Position { line: 320, column: 41, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 321, column: 15, }, end: Position { line: 321, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 321, column: 22, }, end: Position { line: 321, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 321, column: 28, }, end: Position { line: 321, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 321, column: 35, }, end: Position { line: 321, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 321, column: 41, }, end: Position { line: 321, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 322, column: 15, }, end: Position { line: 322, column: 22, }, }, }, ), ], to: List( List { elements: [], span: Span { start: Position { line: 322, column: 25, }, end: Position { line: 322, column: 28, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 323, column: 15, }, end: Position { line: 323, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "kvm", span: Span { start: Position { line: 323, column: 28, }, end: Position { line: 323, column: 31, }, }, }, ), ], span: Span { start: Position { line: 323, column: 27, }, end: Position { line: 323, column: 32, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "big-parallel", span: Span { start: Position { line: 323, column: 34, }, end: Position { line: 323, column: 46, }, }, }, ), ], span: Span { start: Position { line: 323, column: 33, }, end: Position { line: 323, column: 47, }, }, }, ), ], span: Span { start: Position { line: 323, column: 25, }, end: Position { line: 323, column: 49, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 324, column: 15, }, end: Position { line: 324, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 324, column: 29, }, end: Position { line: 324, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 324, column: 33, }, end: Position { line: 324, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "A list of features supported by this builder. The builder will\nbe ignored for derivations that require features not in this\nlist.\n", span: Span { start: Position { line: 325, column: 1, }, end: Position { line: 328, column: 15, }, }, }, ), ], span: Span { start: Position { line: 324, column: 39, }, end: Position { line: 328, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 320, column: 42, }, end: Position { line: 329, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "publicHostKey", span: Span { start: Position { line: 330, column: 13, }, end: Position { line: 330, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 330, column: 29, }, end: Position { line: 330, column: 37, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 331, column: 15, }, end: Position { line: 331, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 331, column: 22, }, end: Position { line: 331, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nullOr", span: Span { start: Position { line: 331, column: 28, }, end: Position { line: 331, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 331, column: 35, }, end: Position { line: 331, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 331, column: 41, }, end: Position { line: 331, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 332, column: 15, }, end: Position { line: 332, column: 22, }, }, }, ), ], to: Identifier( Identifier { id: "null", span: Span { start: Position { line: 332, column: 25, }, end: Position { line: 332, column: 29, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 333, column: 15, }, end: Position { line: 333, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 333, column: 29, }, end: Position { line: 333, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 333, column: 33, }, end: Position { line: 333, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The (base64-encoded) public host key of this builder. The field\nis calculated via {command}`base64 -w0 /etc/ssh/ssh_host_type_key.pub`.\nIf null, SSH will use its regular known-hosts file when connecting.\n", span: Span { start: Position { line: 334, column: 1, }, end: Position { line: 337, column: 15, }, }, }, ), ], span: Span { start: Position { line: 333, column: 39, }, end: Position { line: 337, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 330, column: 38, }, end: Position { line: 338, column: 14, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 222, column: 21, }, end: Position { line: 339, column: 12, }, }, }, ), }, ), ], span: Span { start: Position { line: 221, column: 46, }, end: Position { line: 340, column: 10, }, }, }, ), ], }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 341, column: 9, }, end: Position { line: 341, column: 16, }, }, }, ), ], to: List( List { elements: [], span: Span { start: Position { line: 341, column: 19, }, end: Position { line: 341, column: 22, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 342, column: 9, }, end: Position { line: 342, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 342, column: 23, }, end: Position { line: 342, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 342, column: 27, }, end: Position { line: 342, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "This option lists the machines to be used if distributed builds are\nenabled (see {option}`nix.distributedBuilds`).\nNix will perform derivations on those machines via SSH by copying the\ninputs to the Nix store on the remote machine, starting the build,\nthen copying the output back to the local Nix store.\n", span: Span { start: Position { line: 343, column: 1, }, end: Position { line: 348, column: 9, }, }, }, ), ], span: Span { start: Position { line: 342, column: 33, }, end: Position { line: 348, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 220, column: 32, }, end: Position { line: 349, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "envVars", span: Span { start: Position { line: 352, column: 7, }, end: Position { line: 352, column: 14, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 352, column: 17, }, end: Position { line: 352, column: 25, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 353, column: 9, }, end: Position { line: 353, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 353, column: 16, }, end: Position { line: 353, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "attrs", span: Span { start: Position { line: 353, column: 22, }, end: Position { line: 353, column: 27, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "internal", span: Span { start: Position { line: 354, column: 9, }, end: Position { line: 354, column: 17, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 354, column: 20, }, end: Position { line: 354, column: 24, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 355, column: 9, }, end: Position { line: 355, column: 16, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 355, column: 19, }, end: Position { line: 355, column: 22, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 356, column: 9, }, end: Position { line: 356, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 356, column: 23, }, end: Position { line: 356, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 356, column: 27, }, end: Position { line: 356, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "Environment variables used by Nix.", span: Span { start: Position { line: 356, column: 34, }, end: Position { line: 356, column: 68, }, }, }, ), ], span: Span { start: Position { line: 356, column: 33, }, end: Position { line: 356, column: 69, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 352, column: 26, }, end: Position { line: 357, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nrBuildUsers", span: Span { start: Position { line: 359, column: 7, }, end: Position { line: 359, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 359, column: 22, }, end: Position { line: 359, column: 30, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 360, column: 9, }, end: Position { line: 360, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 360, column: 16, }, end: Position { line: 360, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "int", span: Span { start: Position { line: 360, column: 22, }, end: Position { line: 360, column: 25, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 361, column: 9, }, end: Position { line: 361, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 361, column: 23, }, end: Position { line: 361, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 361, column: 27, }, end: Position { line: 361, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "Number of `nixbld` user accounts created to\nperform secure concurrent builds. If you receive an error\nmessage saying that “all build users are currently in use”,\nyou should increase this value.\n", span: Span { start: Position { line: 362, column: 1, }, end: Position { line: 366, column: 9, }, }, }, ), ], span: Span { start: Position { line: 361, column: 33, }, end: Position { line: 366, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 359, column: 31, }, end: Position { line: 367, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "readOnlyStore", span: Span { start: Position { line: 369, column: 7, }, end: Position { line: 369, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 369, column: 23, }, end: Position { line: 369, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 370, column: 9, }, end: Position { line: 370, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 370, column: 16, }, end: Position { line: 370, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "bool", span: Span { start: Position { line: 370, column: 22, }, end: Position { line: 370, column: 26, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 371, column: 9, }, end: Position { line: 371, column: 16, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 371, column: 19, }, end: Position { line: 371, column: 23, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 372, column: 9, }, end: Position { line: 372, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 372, column: 23, }, end: Position { line: 372, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 372, column: 27, }, end: Position { line: 372, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "If set, NixOS will enforce the immutability of the Nix store\nby making {file}`/nix/store` a read-only bind\nmount. Nix will automatically make the store writable when\nneeded.\n", span: Span { start: Position { line: 373, column: 1, }, end: Position { line: 377, column: 9, }, }, }, ), ], span: Span { start: Position { line: 372, column: 33, }, end: Position { line: 377, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 369, column: 32, }, end: Position { line: 378, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nixPath", span: Span { start: Position { line: 380, column: 7, }, end: Position { line: 380, column: 14, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 380, column: 17, }, end: Position { line: 380, column: 25, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 381, column: 9, }, end: Position { line: 381, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 381, column: 16, }, end: Position { line: 381, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 381, column: 22, }, end: Position { line: 381, column: 28, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 381, column: 29, }, end: Position { line: 381, column: 34, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 381, column: 35, }, end: Position { line: 381, column: 38, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 382, column: 9, }, end: Position { line: 382, column: 16, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos", span: Span { start: Position { line: 383, column: 12, }, end: Position { line: 383, column: 70, }, }, }, ), ], span: Span { start: Position { line: 383, column: 11, }, end: Position { line: 383, column: 71, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "nixos-config=/etc/nixos/configuration.nix", span: Span { start: Position { line: 384, column: 12, }, end: Position { line: 384, column: 53, }, }, }, ), ], span: Span { start: Position { line: 384, column: 11, }, end: Position { line: 384, column: 54, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "/nix/var/nix/profiles/per-user/root/channels", span: Span { start: Position { line: 385, column: 12, }, end: Position { line: 385, column: 56, }, }, }, ), ], span: Span { start: Position { line: 385, column: 11, }, end: Position { line: 385, column: 57, }, }, }, ), ], span: Span { start: Position { line: 382, column: 19, }, end: Position { line: 386, column: 10, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 387, column: 9, }, end: Position { line: 387, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 387, column: 23, }, end: Position { line: 387, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 387, column: 27, }, end: Position { line: 387, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The default Nix expression search path, used by the Nix\nevaluator to look up paths enclosed in angle brackets\n(e.g. ``).\n", span: Span { start: Position { line: 388, column: 1, }, end: Position { line: 391, column: 9, }, }, }, ), ], span: Span { start: Position { line: 387, column: 33, }, end: Position { line: 391, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 380, column: 26, }, end: Position { line: 392, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "checkConfig", span: Span { start: Position { line: 394, column: 7, }, end: Position { line: 394, column: 18, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 394, column: 21, }, end: Position { line: 394, column: 29, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 395, column: 9, }, end: Position { line: 395, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 395, column: 16, }, end: Position { line: 395, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "bool", span: Span { start: Position { line: 395, column: 22, }, end: Position { line: 395, column: 26, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 396, column: 9, }, end: Position { line: 396, column: 16, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 396, column: 19, }, end: Position { line: 396, column: 23, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 397, column: 9, }, end: Position { line: 397, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 397, column: 23, }, end: Position { line: 397, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 397, column: 27, }, end: Position { line: 397, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "If enabled, checks that Nix can parse the generated nix.conf.\n", span: Span { start: Position { line: 398, column: 1, }, end: Position { line: 399, column: 9, }, }, }, ), ], span: Span { start: Position { line: 397, column: 33, }, end: Position { line: 399, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 394, column: 30, }, end: Position { line: 400, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "checkAllErrors", span: Span { start: Position { line: 402, column: 7, }, end: Position { line: 402, column: 21, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 402, column: 24, }, end: Position { line: 402, column: 32, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 403, column: 9, }, end: Position { line: 403, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 403, column: 16, }, end: Position { line: 403, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "bool", span: Span { start: Position { line: 403, column: 22, }, end: Position { line: 403, column: 26, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 404, column: 9, }, end: Position { line: 404, column: 16, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 404, column: 19, }, end: Position { line: 404, column: 23, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 405, column: 9, }, end: Position { line: 405, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 405, column: 23, }, end: Position { line: 405, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 405, column: 27, }, end: Position { line: 405, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "If enabled, checks the nix.conf parsing for any kind of error. When disabled, checks only for unknown settings.\n", span: Span { start: Position { line: 406, column: 1, }, end: Position { line: 407, column: 9, }, }, }, ), ], span: Span { start: Position { line: 405, column: 33, }, end: Position { line: 407, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 402, column: 33, }, end: Position { line: 408, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "registry", span: Span { start: Position { line: 410, column: 7, }, end: Position { line: 410, column: 15, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 410, column: 18, }, end: Position { line: 410, column: 26, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 411, column: 9, }, end: Position { line: 411, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 411, column: 16, }, end: Position { line: 411, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "attrsOf", span: Span { start: Position { line: 411, column: 22, }, end: Position { line: 411, column: 29, }, }, }, ), ], default: None, }, ), arguments: [ FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 411, column: 31, }, end: Position { line: 411, column: 36, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "submodule", span: Span { start: Position { line: 411, column: 37, }, end: Position { line: 411, column: 46, }, }, }, ), ], default: None, }, ), arguments: [ LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "referenceAttrs", span: Span { start: Position { line: 413, column: 13, }, end: Position { line: 413, column: 27, }, }, }, ), ], to: With( With { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 413, column: 35, }, end: Position { line: 413, column: 40, }, }, }, ), target: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "attrsOf", span: Span { start: Position { line: 413, column: 42, }, end: Position { line: 413, column: 49, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "oneOf", span: Span { start: Position { line: 413, column: 51, }, end: Position { line: 413, column: 56, }, }, }, ), arguments: [ List( List { elements: [ Identifier( Identifier { id: "str", span: Span { start: Position { line: 414, column: 15, }, end: Position { line: 414, column: 18, }, }, }, ), Identifier( Identifier { id: "int", span: Span { start: Position { line: 415, column: 15, }, end: Position { line: 415, column: 18, }, }, }, ), Identifier( Identifier { id: "bool", span: Span { start: Position { line: 416, column: 15, }, end: Position { line: 416, column: 19, }, }, }, ), Identifier( Identifier { id: "package", span: Span { start: Position { line: 417, column: 15, }, end: Position { line: 417, column: 22, }, }, }, ), ], span: Span { start: Position { line: 413, column: 57, }, end: Position { line: 418, column: 14, }, }, }, ), ], }, ), ], }, ), span: Span { start: Position { line: 413, column: 30, }, end: Position { line: 418, column: 15, }, }, }, ), }, ), ], target: Function( Function { head: Destructured( FunctionHeadDestructured { ellipsis: true, identifier: None, arguments: [ FunctionHeadDestructuredArgument { identifier: "config", default: None, }, FunctionHeadDestructuredArgument { identifier: "name", default: None, }, ], }, ), body: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "options", span: Span { start: Position { line: 422, column: 13, }, end: Position { line: 422, column: 20, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "from", span: Span { start: Position { line: 423, column: 15, }, end: Position { line: 423, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 423, column: 22, }, end: Position { line: 423, column: 30, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 424, column: 17, }, end: Position { line: 424, column: 21, }, }, }, ), ], to: Identifier( Identifier { id: "referenceAttrs", span: Span { start: Position { line: 424, column: 24, }, end: Position { line: 424, column: 38, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 425, column: 17, }, end: Position { line: 425, column: 24, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 425, column: 29, }, end: Position { line: 425, column: 33, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "indirect", span: Span { start: Position { line: 425, column: 37, }, end: Position { line: 425, column: 45, }, }, }, ), ], span: Span { start: Position { line: 425, column: 36, }, end: Position { line: 425, column: 46, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "id", span: Span { start: Position { line: 425, column: 48, }, end: Position { line: 425, column: 50, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "nixpkgs", span: Span { start: Position { line: 425, column: 54, }, end: Position { line: 425, column: 61, }, }, }, ), ], span: Span { start: Position { line: 425, column: 53, }, end: Position { line: 425, column: 62, }, }, }, ), }, ), ], span: Span { start: Position { line: 425, column: 27, }, end: Position { line: 425, column: 65, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 426, column: 17, }, end: Position { line: 426, column: 28, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 426, column: 31, }, end: Position { line: 426, column: 34, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 426, column: 35, }, end: Position { line: 426, column: 40, }, }, }, ), ], default: None, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "The flake reference to be rewritten.", span: Span { start: Position { line: 426, column: 42, }, end: Position { line: 426, column: 78, }, }, }, ), ], span: Span { start: Position { line: 426, column: 41, }, end: Position { line: 426, column: 79, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 423, column: 31, }, end: Position { line: 427, column: 16, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "to", span: Span { start: Position { line: 428, column: 15, }, end: Position { line: 428, column: 17, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 428, column: 20, }, end: Position { line: 428, column: 28, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 429, column: 17, }, end: Position { line: 429, column: 21, }, }, }, ), ], to: Identifier( Identifier { id: "referenceAttrs", span: Span { start: Position { line: 429, column: 24, }, end: Position { line: 429, column: 38, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 430, column: 17, }, end: Position { line: 430, column: 24, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 430, column: 29, }, end: Position { line: 430, column: 33, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "github", span: Span { start: Position { line: 430, column: 37, }, end: Position { line: 430, column: 43, }, }, }, ), ], span: Span { start: Position { line: 430, column: 36, }, end: Position { line: 430, column: 44, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "owner", span: Span { start: Position { line: 430, column: 46, }, end: Position { line: 430, column: 51, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "my-org", span: Span { start: Position { line: 430, column: 55, }, end: Position { line: 430, column: 61, }, }, }, ), ], span: Span { start: Position { line: 430, column: 54, }, end: Position { line: 430, column: 62, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "repo", span: Span { start: Position { line: 430, column: 64, }, end: Position { line: 430, column: 68, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "my-nixpkgs", span: Span { start: Position { line: 430, column: 72, }, end: Position { line: 430, column: 82, }, }, }, ), ], span: Span { start: Position { line: 430, column: 71, }, end: Position { line: 430, column: 83, }, }, }, ), }, ), ], span: Span { start: Position { line: 430, column: 27, }, end: Position { line: 430, column: 86, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 431, column: 17, }, end: Position { line: 431, column: 28, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 431, column: 31, }, end: Position { line: 431, column: 34, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 431, column: 35, }, end: Position { line: 431, column: 40, }, }, }, ), ], default: None, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "The flake reference {option}`from` is rewritten to.", span: Span { start: Position { line: 431, column: 42, }, end: Position { line: 431, column: 93, }, }, }, ), ], span: Span { start: Position { line: 431, column: 41, }, end: Position { line: 431, column: 94, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 428, column: 29, }, end: Position { line: 432, column: 16, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "flake", span: Span { start: Position { line: 433, column: 15, }, end: Position { line: 433, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 433, column: 23, }, end: Position { line: 433, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 434, column: 17, }, end: Position { line: 434, column: 21, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 434, column: 24, }, end: Position { line: 434, column: 29, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nullOr", span: Span { start: Position { line: 434, column: 30, }, end: Position { line: 434, column: 36, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 434, column: 37, }, end: Position { line: 434, column: 42, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "attrs", span: Span { start: Position { line: 434, column: 43, }, end: Position { line: 434, column: 48, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 435, column: 17, }, end: Position { line: 435, column: 24, }, }, }, ), ], to: Identifier( Identifier { id: "null", span: Span { start: Position { line: 435, column: 27, }, end: Position { line: 435, column: 31, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 436, column: 17, }, end: Position { line: 436, column: 24, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "literalExpression", span: Span { start: Position { line: 436, column: 27, }, end: Position { line: 436, column: 44, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "nixpkgs", span: Span { start: Position { line: 436, column: 46, }, end: Position { line: 436, column: 53, }, }, }, ), ], span: Span { start: Position { line: 436, column: 45, }, end: Position { line: 436, column: 54, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 437, column: 17, }, end: Position { line: 437, column: 28, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 437, column: 31, }, end: Position { line: 437, column: 34, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 437, column: 35, }, end: Position { line: 437, column: 40, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The flake input {option}`from` is rewritten to.\n", span: Span { start: Position { line: 438, column: 1, }, end: Position { line: 439, column: 17, }, }, }, ), ], span: Span { start: Position { line: 437, column: 41, }, end: Position { line: 439, column: 19, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 433, column: 32, }, end: Position { line: 440, column: 16, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "exact", span: Span { start: Position { line: 441, column: 15, }, end: Position { line: 441, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 441, column: 23, }, end: Position { line: 441, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 442, column: 17, }, end: Position { line: 442, column: 21, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 442, column: 24, }, end: Position { line: 442, column: 29, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "bool", span: Span { start: Position { line: 442, column: 30, }, end: Position { line: 442, column: 34, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 443, column: 17, }, end: Position { line: 443, column: 24, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 443, column: 27, }, end: Position { line: 443, column: 31, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 444, column: 17, }, end: Position { line: 444, column: 28, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 444, column: 31, }, end: Position { line: 444, column: 34, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 444, column: 35, }, end: Position { line: 444, column: 40, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "Whether the {option}`from` reference needs to match exactly. If set,\na {option}`from` reference like `nixpkgs` does not\nmatch with a reference like `nixpkgs/nixos-20.03`.\n", span: Span { start: Position { line: 445, column: 1, }, end: Position { line: 448, column: 17, }, }, }, ), ], span: Span { start: Position { line: 444, column: 41, }, end: Position { line: 448, column: 19, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 441, column: 32, }, end: Position { line: 449, column: 16, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 422, column: 23, }, end: Position { line: 450, column: 14, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "config", span: Span { start: Position { line: 451, column: 13, }, end: Position { line: 451, column: 19, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "from", span: Span { start: Position { line: 452, column: 15, }, end: Position { line: 452, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkDefault", span: Span { start: Position { line: 452, column: 22, }, end: Position { line: 452, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 452, column: 34, }, end: Position { line: 452, column: 38, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "indirect", span: Span { start: Position { line: 452, column: 42, }, end: Position { line: 452, column: 50, }, }, }, ), ], span: Span { start: Position { line: 452, column: 41, }, end: Position { line: 452, column: 51, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "id", span: Span { start: Position { line: 452, column: 53, }, end: Position { line: 452, column: 55, }, }, }, ), ], to: Identifier( Identifier { id: "name", span: Span { start: Position { line: 452, column: 58, }, end: Position { line: 452, column: 62, }, }, }, ), }, ), ], span: Span { start: Position { line: 452, column: 32, }, end: Position { line: 452, column: 65, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "to", span: Span { start: Position { line: 453, column: 15, }, end: Position { line: 453, column: 17, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkIf", span: Span { start: Position { line: 453, column: 20, }, end: Position { line: 453, column: 24, }, }, }, ), arguments: [ BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 453, column: 26, }, end: Position { line: 453, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "flake", span: Span { start: Position { line: 453, column: 33, }, end: Position { line: 453, column: 38, }, }, }, ), ], default: None, }, ), operator: NotEqualTo, right: Identifier( Identifier { id: "null", span: Span { start: Position { line: 453, column: 42, }, end: Position { line: 453, column: 46, }, }, }, ), }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkDefault", span: Span { start: Position { line: 453, column: 49, }, end: Position { line: 453, column: 58, }, }, }, ), arguments: [ BinaryOperation( BinaryOperation { left: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 455, column: 19, }, end: Position { line: 455, column: 23, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "path", span: Span { start: Position { line: 455, column: 27, }, end: Position { line: 455, column: 31, }, }, }, ), ], span: Span { start: Position { line: 455, column: 26, }, end: Position { line: 455, column: 32, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "path", span: Span { start: Position { line: 456, column: 19, }, end: Position { line: 456, column: 23, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 456, column: 26, }, end: Position { line: 456, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "flake", span: Span { start: Position { line: 456, column: 33, }, end: Position { line: 456, column: 38, }, }, }, ), Raw( PartRaw { content: "outPath", span: Span { start: Position { line: 456, column: 39, }, end: Position { line: 456, column: 46, }, }, }, ), ], default: None, }, ), }, ), ], span: Span { start: Position { line: 454, column: 17, }, end: Position { line: 457, column: 18, }, }, }, ), operator: Update, right: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "filterAttrs", span: Span { start: Position { line: 457, column: 22, }, end: Position { line: 457, column: 33, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "n", }, ), body: Function( Function { head: Simple( FunctionHeadSimple { identifier: "_", }, ), body: BinaryOperation( BinaryOperation { left: BinaryOperation( BinaryOperation { left: BinaryOperation( BinaryOperation { left: BinaryOperation( BinaryOperation { left: Identifier( Identifier { id: "n", span: Span { start: Position { line: 458, column: 26, }, end: Position { line: 458, column: 27, }, }, }, ), operator: EqualTo, right: String( String_ { parts: [ Raw( PartRaw { content: "lastModified", span: Span { start: Position { line: 458, column: 32, }, end: Position { line: 458, column: 44, }, }, }, ), ], span: Span { start: Position { line: 458, column: 31, }, end: Position { line: 458, column: 45, }, }, }, ), }, ), operator: LogicalOr, right: BinaryOperation( BinaryOperation { left: Identifier( Identifier { id: "n", span: Span { start: Position { line: 458, column: 49, }, end: Position { line: 458, column: 50, }, }, }, ), operator: EqualTo, right: String( String_ { parts: [ Raw( PartRaw { content: "rev", span: Span { start: Position { line: 458, column: 55, }, end: Position { line: 458, column: 58, }, }, }, ), ], span: Span { start: Position { line: 458, column: 54, }, end: Position { line: 458, column: 59, }, }, }, ), }, ), }, ), operator: LogicalOr, right: BinaryOperation( BinaryOperation { left: Identifier( Identifier { id: "n", span: Span { start: Position { line: 458, column: 63, }, end: Position { line: 458, column: 64, }, }, }, ), operator: EqualTo, right: String( String_ { parts: [ Raw( PartRaw { content: "revCount", span: Span { start: Position { line: 458, column: 69, }, end: Position { line: 458, column: 77, }, }, }, ), ], span: Span { start: Position { line: 458, column: 68, }, end: Position { line: 458, column: 78, }, }, }, ), }, ), }, ), operator: LogicalOr, right: BinaryOperation( BinaryOperation { left: Identifier( Identifier { id: "n", span: Span { start: Position { line: 458, column: 82, }, end: Position { line: 458, column: 83, }, }, }, ), operator: EqualTo, right: String( String_ { parts: [ Raw( PartRaw { content: "narHash", span: Span { start: Position { line: 458, column: 88, }, end: Position { line: 458, column: 95, }, }, }, ), ], span: Span { start: Position { line: 458, column: 87, }, end: Position { line: 458, column: 96, }, }, }, ), }, ), }, ), span: Span { start: Position { line: 458, column: 23, }, end: Position { line: 458, column: 96, }, }, }, ), span: Span { start: Position { line: 458, column: 20, }, end: Position { line: 458, column: 96, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 459, column: 19, }, end: Position { line: 459, column: 25, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "flake", span: Span { start: Position { line: 459, column: 26, }, end: Position { line: 459, column: 31, }, }, }, ), ], default: None, }, ), ], }, ), }, ), ], }, ), ], }, ), }, ), ], span: Span { start: Position { line: 451, column: 22, }, end: Position { line: 461, column: 14, }, }, }, ), }, ), ], span: Span { start: Position { line: 421, column: 11, }, end: Position { line: 462, column: 12, }, }, }, ), span: Span { start: Position { line: 420, column: 11, }, end: Position { line: 462, column: 12, }, }, }, ), span: Span { start: Position { line: 412, column: 11, }, end: Position { line: 462, column: 12, }, }, }, ), ], }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 464, column: 9, }, end: Position { line: 464, column: 16, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 464, column: 19, }, end: Position { line: 464, column: 22, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 465, column: 9, }, end: Position { line: 465, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 465, column: 23, }, end: Position { line: 465, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 465, column: 27, }, end: Position { line: 465, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "A system-wide flake registry.\n", span: Span { start: Position { line: 466, column: 1, }, end: Position { line: 467, column: 9, }, }, }, ), ], span: Span { start: Position { line: 465, column: 33, }, end: Position { line: 467, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 410, column: 27, }, end: Position { line: 468, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "extraOptions", span: Span { start: Position { line: 470, column: 7, }, end: Position { line: 470, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 470, column: 22, }, end: Position { line: 470, column: 30, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 471, column: 9, }, end: Position { line: 471, column: 13, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 471, column: 16, }, end: Position { line: 471, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "lines", span: Span { start: Position { line: 471, column: 22, }, end: Position { line: 471, column: 27, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 472, column: 9, }, end: Position { line: 472, column: 16, }, }, }, ), ], to: String( String_ { parts: [], span: Span { start: Position { line: 472, column: 19, }, end: Position { line: 472, column: 21, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 473, column: 9, }, end: Position { line: 473, column: 16, }, }, }, ), ], to: IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "keep-outputs = true\nkeep-derivations = true\n", span: Span { start: Position { line: 474, column: 1, }, end: Position { line: 476, column: 9, }, }, }, ), ], span: Span { start: Position { line: 473, column: 19, }, end: Position { line: 476, column: 11, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 477, column: 9, }, end: Position { line: 477, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 477, column: 23, }, end: Position { line: 477, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 477, column: 27, }, end: Position { line: 477, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "Additional text appended to {file}`nix.conf`.", span: Span { start: Position { line: 477, column: 34, }, end: Position { line: 477, column: 79, }, }, }, ), ], span: Span { start: Position { line: 477, column: 33, }, end: Position { line: 477, column: 80, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 470, column: 31, }, end: Position { line: 478, column: 8, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "settings", span: Span { start: Position { line: 480, column: 7, }, end: Position { line: 480, column: 15, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 480, column: 18, }, end: Position { line: 480, column: 26, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 481, column: 9, }, end: Position { line: 481, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 481, column: 16, }, end: Position { line: 481, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "submodule", span: Span { start: Position { line: 481, column: 22, }, end: Position { line: 481, column: 31, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "freeformType", span: Span { start: Position { line: 482, column: 11, }, end: Position { line: 482, column: 23, }, }, }, ), ], to: Identifier( Identifier { id: "semanticConfType", span: Span { start: Position { line: 482, column: 26, }, end: Position { line: 482, column: 42, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "options", span: Span { start: Position { line: 484, column: 11, }, end: Position { line: 484, column: 18, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "max-jobs", span: Span { start: Position { line: 485, column: 13, }, end: Position { line: 485, column: 21, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 485, column: 24, }, end: Position { line: 485, column: 32, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 486, column: 15, }, end: Position { line: 486, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 486, column: 22, }, end: Position { line: 486, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "either", span: Span { start: Position { line: 486, column: 28, }, end: Position { line: 486, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 486, column: 35, }, end: Position { line: 486, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "int", span: Span { start: Position { line: 486, column: 41, }, end: Position { line: 486, column: 44, }, }, }, ), ], default: None, }, ), FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 486, column: 46, }, end: Position { line: 486, column: 51, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "enum", span: Span { start: Position { line: 486, column: 52, }, end: Position { line: 486, column: 56, }, }, }, ), ], default: None, }, ), arguments: [ List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "auto", span: Span { start: Position { line: 486, column: 60, }, end: Position { line: 486, column: 64, }, }, }, ), ], span: Span { start: Position { line: 486, column: 59, }, end: Position { line: 486, column: 65, }, }, }, ), ], span: Span { start: Position { line: 486, column: 57, }, end: Position { line: 486, column: 67, }, }, }, ), ], }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 487, column: 15, }, end: Position { line: 487, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "auto", span: Span { start: Position { line: 487, column: 26, }, end: Position { line: 487, column: 30, }, }, }, ), ], span: Span { start: Position { line: 487, column: 25, }, end: Position { line: 487, column: 31, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 488, column: 15, }, end: Position { line: 488, column: 22, }, }, }, ), ], to: Integer( Integer { value: "64", span: Span { start: Position { line: 488, column: 25, }, end: Position { line: 488, column: 27, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 489, column: 15, }, end: Position { line: 489, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 489, column: 29, }, end: Position { line: 489, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 489, column: 33, }, end: Position { line: 489, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "This option defines the maximum number of jobs that Nix will try to\nbuild in parallel. The default is auto, which means it will use all\navailable logical cores. It is recommend to set it to the total\nnumber of logical cores in your system (e.g., 16 for two CPUs with 4\ncores each and hyper-threading).\n", span: Span { start: Position { line: 490, column: 1, }, end: Position { line: 495, column: 15, }, }, }, ), ], span: Span { start: Position { line: 489, column: 39, }, end: Position { line: 495, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 485, column: 33, }, end: Position { line: 496, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "auto-optimise-store", span: Span { start: Position { line: 498, column: 13, }, end: Position { line: 498, column: 32, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 498, column: 35, }, end: Position { line: 498, column: 43, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 499, column: 15, }, end: Position { line: 499, column: 19, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 499, column: 22, }, end: Position { line: 499, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "bool", span: Span { start: Position { line: 499, column: 28, }, end: Position { line: 499, column: 32, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 500, column: 15, }, end: Position { line: 500, column: 22, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 500, column: 25, }, end: Position { line: 500, column: 30, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 501, column: 15, }, end: Position { line: 501, column: 22, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 501, column: 25, }, end: Position { line: 501, column: 29, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 502, column: 15, }, end: Position { line: 502, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 502, column: 29, }, end: Position { line: 502, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 502, column: 33, }, end: Position { line: 502, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "If set to true, Nix automatically detects files in the store that have\nidentical contents, and replaces them with hard links to a single copy.\nThis saves disk space. If set to false (the default), you can still run\nnix-store --optimise to get rid of duplicate files.\n", span: Span { start: Position { line: 503, column: 1, }, end: Position { line: 507, column: 15, }, }, }, ), ], span: Span { start: Position { line: 502, column: 39, }, end: Position { line: 507, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 498, column: 44, }, end: Position { line: 508, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "cores", span: Span { start: Position { line: 510, column: 13, }, end: Position { line: 510, column: 18, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 510, column: 21, }, end: Position { line: 510, column: 29, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 511, column: 15, }, end: Position { line: 511, column: 19, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 511, column: 22, }, end: Position { line: 511, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "int", span: Span { start: Position { line: 511, column: 28, }, end: Position { line: 511, column: 31, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 512, column: 15, }, end: Position { line: 512, column: 22, }, }, }, ), ], to: Integer( Integer { value: "0", span: Span { start: Position { line: 512, column: 25, }, end: Position { line: 512, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 513, column: 15, }, end: Position { line: 513, column: 22, }, }, }, ), ], to: Integer( Integer { value: "64", span: Span { start: Position { line: 513, column: 25, }, end: Position { line: 513, column: 27, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 514, column: 15, }, end: Position { line: 514, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 514, column: 29, }, end: Position { line: 514, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 514, column: 33, }, end: Position { line: 514, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "This option defines the maximum number of concurrent tasks during\none build. It affects, e.g., -j option for make.\nThe special value 0 means that the builder should use all\navailable CPU cores in the system. Some builds may become\nnon-deterministic with this option; use with care! Packages will\nonly be affected if enableParallelBuilding is set for them.\n", span: Span { start: Position { line: 515, column: 1, }, end: Position { line: 521, column: 15, }, }, }, ), ], span: Span { start: Position { line: 514, column: 39, }, end: Position { line: 521, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 510, column: 30, }, end: Position { line: 522, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sandbox", span: Span { start: Position { line: 524, column: 13, }, end: Position { line: 524, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 524, column: 23, }, end: Position { line: 524, column: 31, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 525, column: 15, }, end: Position { line: 525, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 525, column: 22, }, end: Position { line: 525, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "either", span: Span { start: Position { line: 525, column: 28, }, end: Position { line: 525, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 525, column: 35, }, end: Position { line: 525, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "bool", span: Span { start: Position { line: 525, column: 41, }, end: Position { line: 525, column: 45, }, }, }, ), ], default: None, }, ), FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 525, column: 47, }, end: Position { line: 525, column: 52, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "enum", span: Span { start: Position { line: 525, column: 53, }, end: Position { line: 525, column: 57, }, }, }, ), ], default: None, }, ), arguments: [ List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "relaxed", span: Span { start: Position { line: 525, column: 61, }, end: Position { line: 525, column: 68, }, }, }, ), ], span: Span { start: Position { line: 525, column: 60, }, end: Position { line: 525, column: 69, }, }, }, ), ], span: Span { start: Position { line: 525, column: 58, }, end: Position { line: 525, column: 71, }, }, }, ), ], }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 526, column: 15, }, end: Position { line: 526, column: 22, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 526, column: 25, }, end: Position { line: 526, column: 29, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 527, column: 15, }, end: Position { line: 527, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 527, column: 29, }, end: Position { line: 527, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 527, column: 33, }, end: Position { line: 527, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "If set, Nix will perform builds in a sandboxed environment that it\nwill set up automatically for each build. This prevents impurities\nin builds by disallowing access to dependencies outside of the Nix\nstore by using network and mount namespaces in a chroot environment.\nThis is enabled by default even though it has a possible performance\nimpact due to the initial setup time of a sandbox for each build. It\ndoesn't affect derivation hashes, so changing this option will not\ntrigger a rebuild of packages.\n", span: Span { start: Position { line: 528, column: 1, }, end: Position { line: 536, column: 15, }, }, }, ), ], span: Span { start: Position { line: 527, column: 39, }, end: Position { line: 536, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 524, column: 32, }, end: Position { line: 537, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "extra-sandbox-paths", span: Span { start: Position { line: 539, column: 13, }, end: Position { line: 539, column: 32, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 539, column: 35, }, end: Position { line: 539, column: 43, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 540, column: 15, }, end: Position { line: 540, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 540, column: 22, }, end: Position { line: 540, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 540, column: 28, }, end: Position { line: 540, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 540, column: 35, }, end: Position { line: 540, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 540, column: 41, }, end: Position { line: 540, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 541, column: 15, }, end: Position { line: 541, column: 22, }, }, }, ), ], to: List( List { elements: [], span: Span { start: Position { line: 541, column: 25, }, end: Position { line: 541, column: 28, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 542, column: 15, }, end: Position { line: 542, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "/dev", span: Span { start: Position { line: 542, column: 28, }, end: Position { line: 542, column: 32, }, }, }, ), ], span: Span { start: Position { line: 542, column: 27, }, end: Position { line: 542, column: 33, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "/proc", span: Span { start: Position { line: 542, column: 35, }, end: Position { line: 542, column: 40, }, }, }, ), ], span: Span { start: Position { line: 542, column: 34, }, end: Position { line: 542, column: 41, }, }, }, ), ], span: Span { start: Position { line: 542, column: 25, }, end: Position { line: 542, column: 43, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 543, column: 15, }, end: Position { line: 543, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 543, column: 29, }, end: Position { line: 543, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 543, column: 33, }, end: Position { line: 543, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "Directories from the host filesystem to be included\nin the sandbox.\n", span: Span { start: Position { line: 544, column: 1, }, end: Position { line: 546, column: 15, }, }, }, ), ], span: Span { start: Position { line: 543, column: 39, }, end: Position { line: 546, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 539, column: 44, }, end: Position { line: 547, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "substituters", span: Span { start: Position { line: 549, column: 13, }, end: Position { line: 549, column: 25, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 549, column: 28, }, end: Position { line: 549, column: 36, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 550, column: 15, }, end: Position { line: 550, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 550, column: 22, }, end: Position { line: 550, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 550, column: 28, }, end: Position { line: 550, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 550, column: 35, }, end: Position { line: 550, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 550, column: 41, }, end: Position { line: 550, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 551, column: 15, }, end: Position { line: 551, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 551, column: 29, }, end: Position { line: 551, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 551, column: 33, }, end: Position { line: 551, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "List of binary cache URLs used to obtain pre-built binaries\nof Nix packages.\n\nBy default https://cache.nixos.org/ is added.\n", span: Span { start: Position { line: 552, column: 1, }, end: Position { line: 556, column: 15, }, }, }, ), ], span: Span { start: Position { line: 551, column: 39, }, end: Position { line: 556, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 549, column: 37, }, end: Position { line: 557, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "trusted-substituters", span: Span { start: Position { line: 559, column: 13, }, end: Position { line: 559, column: 33, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 559, column: 36, }, end: Position { line: 559, column: 44, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 560, column: 15, }, end: Position { line: 560, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 560, column: 22, }, end: Position { line: 560, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 560, column: 28, }, end: Position { line: 560, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 560, column: 35, }, end: Position { line: 560, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 560, column: 41, }, end: Position { line: 560, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 561, column: 15, }, end: Position { line: 561, column: 22, }, }, }, ), ], to: List( List { elements: [], span: Span { start: Position { line: 561, column: 25, }, end: Position { line: 561, column: 28, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 562, column: 15, }, end: Position { line: 562, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "https://hydra.nixos.org/", span: Span { start: Position { line: 562, column: 28, }, end: Position { line: 562, column: 52, }, }, }, ), ], span: Span { start: Position { line: 562, column: 27, }, end: Position { line: 562, column: 53, }, }, }, ), ], span: Span { start: Position { line: 562, column: 25, }, end: Position { line: 562, column: 55, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 563, column: 15, }, end: Position { line: 563, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 563, column: 29, }, end: Position { line: 563, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 563, column: 33, }, end: Position { line: 563, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "List of binary cache URLs that non-root users can use (in\naddition to those specified using\n{option}`nix.settings.substituters`) by passing\n`--option binary-caches` to Nix commands.\n", span: Span { start: Position { line: 564, column: 1, }, end: Position { line: 568, column: 15, }, }, }, ), ], span: Span { start: Position { line: 563, column: 39, }, end: Position { line: 568, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 559, column: 45, }, end: Position { line: 569, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "require-sigs", span: Span { start: Position { line: 571, column: 13, }, end: Position { line: 571, column: 25, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 571, column: 28, }, end: Position { line: 571, column: 36, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 572, column: 15, }, end: Position { line: 572, column: 19, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 572, column: 22, }, end: Position { line: 572, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "bool", span: Span { start: Position { line: 572, column: 28, }, end: Position { line: 572, column: 32, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 573, column: 15, }, end: Position { line: 573, column: 22, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 573, column: 25, }, end: Position { line: 573, column: 29, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 574, column: 15, }, end: Position { line: 574, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 574, column: 29, }, end: Position { line: 574, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 574, column: 33, }, end: Position { line: 574, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "If enabled (the default), Nix will only download binaries from binary caches if\nthey are cryptographically signed with any of the keys listed in\n{option}`nix.settings.trusted-public-keys`. If disabled, signatures are neither\nrequired nor checked, so it's strongly recommended that you use only\ntrustworthy caches and https to prevent man-in-the-middle attacks.\n", span: Span { start: Position { line: 575, column: 1, }, end: Position { line: 580, column: 15, }, }, }, ), ], span: Span { start: Position { line: 574, column: 39, }, end: Position { line: 580, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 571, column: 37, }, end: Position { line: 581, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "trusted-public-keys", span: Span { start: Position { line: 583, column: 13, }, end: Position { line: 583, column: 32, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 583, column: 35, }, end: Position { line: 583, column: 43, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 584, column: 15, }, end: Position { line: 584, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 584, column: 22, }, end: Position { line: 584, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 584, column: 28, }, end: Position { line: 584, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 584, column: 35, }, end: Position { line: 584, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 584, column: 41, }, end: Position { line: 584, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 585, column: 15, }, end: Position { line: 585, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=", span: Span { start: Position { line: 585, column: 28, }, end: Position { line: 585, column: 90, }, }, }, ), ], span: Span { start: Position { line: 585, column: 27, }, end: Position { line: 585, column: 91, }, }, }, ), ], span: Span { start: Position { line: 585, column: 25, }, end: Position { line: 585, column: 93, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 586, column: 15, }, end: Position { line: 586, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 586, column: 29, }, end: Position { line: 586, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 586, column: 33, }, end: Position { line: 586, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "List of public keys used to sign binary caches. If\n{option}`nix.settings.trusted-public-keys` is enabled,\nthen Nix will use a binary from a binary cache if and only\nif it is signed by *any* of the keys\nlisted here. By default, only the key for\n`cache.nixos.org` is included.\n", span: Span { start: Position { line: 587, column: 1, }, end: Position { line: 593, column: 15, }, }, }, ), ], span: Span { start: Position { line: 586, column: 39, }, end: Position { line: 593, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 583, column: 44, }, end: Position { line: 594, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "trusted-users", span: Span { start: Position { line: 596, column: 13, }, end: Position { line: 596, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 596, column: 29, }, end: Position { line: 596, column: 37, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 597, column: 15, }, end: Position { line: 597, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 597, column: 22, }, end: Position { line: 597, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 597, column: 28, }, end: Position { line: 597, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 597, column: 35, }, end: Position { line: 597, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 597, column: 41, }, end: Position { line: 597, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 598, column: 15, }, end: Position { line: 598, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "root", span: Span { start: Position { line: 598, column: 28, }, end: Position { line: 598, column: 32, }, }, }, ), ], span: Span { start: Position { line: 598, column: 27, }, end: Position { line: 598, column: 33, }, }, }, ), ], span: Span { start: Position { line: 598, column: 25, }, end: Position { line: 598, column: 35, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 599, column: 15, }, end: Position { line: 599, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "root", span: Span { start: Position { line: 599, column: 28, }, end: Position { line: 599, column: 32, }, }, }, ), ], span: Span { start: Position { line: 599, column: 27, }, end: Position { line: 599, column: 33, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "alice", span: Span { start: Position { line: 599, column: 35, }, end: Position { line: 599, column: 40, }, }, }, ), ], span: Span { start: Position { line: 599, column: 34, }, end: Position { line: 599, column: 41, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "@wheel", span: Span { start: Position { line: 599, column: 43, }, end: Position { line: 599, column: 49, }, }, }, ), ], span: Span { start: Position { line: 599, column: 42, }, end: Position { line: 599, column: 50, }, }, }, ), ], span: Span { start: Position { line: 599, column: 25, }, end: Position { line: 599, column: 52, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 600, column: 15, }, end: Position { line: 600, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 600, column: 29, }, end: Position { line: 600, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 600, column: 33, }, end: Position { line: 600, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "A list of names of users that have additional rights when\nconnecting to the Nix daemon, such as the ability to specify\nadditional binary caches, or to import unsigned NARs. You\ncan also specify groups by prefixing them with\n`@`; for instance,\n`@wheel` means all users in the wheel\ngroup.\n", span: Span { start: Position { line: 601, column: 1, }, end: Position { line: 608, column: 15, }, }, }, ), ], span: Span { start: Position { line: 600, column: 39, }, end: Position { line: 608, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 596, column: 38, }, end: Position { line: 609, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "system-features", span: Span { start: Position { line: 611, column: 13, }, end: Position { line: 611, column: 28, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 611, column: 31, }, end: Position { line: 611, column: 39, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 612, column: 15, }, end: Position { line: 612, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 612, column: 22, }, end: Position { line: 612, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 612, column: 28, }, end: Position { line: 612, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 612, column: 35, }, end: Position { line: 612, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 612, column: 41, }, end: Position { line: 612, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 613, column: 15, }, end: Position { line: 613, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "kvm", span: Span { start: Position { line: 613, column: 28, }, end: Position { line: 613, column: 31, }, }, }, ), ], span: Span { start: Position { line: 613, column: 27, }, end: Position { line: 613, column: 32, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "big-parallel", span: Span { start: Position { line: 613, column: 34, }, end: Position { line: 613, column: 46, }, }, }, ), ], span: Span { start: Position { line: 613, column: 33, }, end: Position { line: 613, column: 47, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "gccarch-skylake", span: Span { start: Position { line: 613, column: 49, }, end: Position { line: 613, column: 64, }, }, }, ), ], span: Span { start: Position { line: 613, column: 48, }, end: Position { line: 613, column: 65, }, }, }, ), ], span: Span { start: Position { line: 613, column: 25, }, end: Position { line: 613, column: 67, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 614, column: 15, }, end: Position { line: 614, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 614, column: 29, }, end: Position { line: 614, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 614, column: 33, }, end: Position { line: 614, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "The set of features supported by the machine. Derivations\ncan express dependencies on system features through the\n`requiredSystemFeatures` attribute.\n\nBy default, pseudo-features `nixos-test`, `benchmark`,\nand `big-parallel` used in Nixpkgs are set, `kvm`\nis also included in it is avaliable.\n", span: Span { start: Position { line: 615, column: 1, }, end: Position { line: 622, column: 15, }, }, }, ), ], span: Span { start: Position { line: 614, column: 39, }, end: Position { line: 622, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 611, column: 40, }, end: Position { line: 623, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "allowed-users", span: Span { start: Position { line: 625, column: 13, }, end: Position { line: 625, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkOption", span: Span { start: Position { line: 625, column: 29, }, end: Position { line: 625, column: 37, }, }, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "type", span: Span { start: Position { line: 626, column: 15, }, end: Position { line: 626, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 626, column: 22, }, end: Position { line: 626, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "listOf", span: Span { start: Position { line: 626, column: 28, }, end: Position { line: 626, column: 34, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "types", span: Span { start: Position { line: 626, column: 35, }, end: Position { line: 626, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "str", span: Span { start: Position { line: 626, column: 41, }, end: Position { line: 626, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 627, column: 15, }, end: Position { line: 627, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "*", span: Span { start: Position { line: 627, column: 28, }, end: Position { line: 627, column: 29, }, }, }, ), ], span: Span { start: Position { line: 627, column: 27, }, end: Position { line: 627, column: 30, }, }, }, ), ], span: Span { start: Position { line: 627, column: 25, }, end: Position { line: 627, column: 32, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 628, column: 15, }, end: Position { line: 628, column: 22, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "@wheel", span: Span { start: Position { line: 628, column: 28, }, end: Position { line: 628, column: 34, }, }, }, ), ], span: Span { start: Position { line: 628, column: 27, }, end: Position { line: 628, column: 35, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "@builders", span: Span { start: Position { line: 628, column: 37, }, end: Position { line: 628, column: 46, }, }, }, ), ], span: Span { start: Position { line: 628, column: 36, }, end: Position { line: 628, column: 47, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "alice", span: Span { start: Position { line: 628, column: 49, }, end: Position { line: 628, column: 54, }, }, }, ), ], span: Span { start: Position { line: 628, column: 48, }, end: Position { line: 628, column: 55, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "bob", span: Span { start: Position { line: 628, column: 57, }, end: Position { line: 628, column: 60, }, }, }, ), ], span: Span { start: Position { line: 628, column: 56, }, end: Position { line: 628, column: 61, }, }, }, ), ], span: Span { start: Position { line: 628, column: 25, }, end: Position { line: 628, column: 63, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 629, column: 15, }, end: Position { line: 629, column: 26, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 629, column: 29, }, end: Position { line: 629, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 629, column: 33, }, end: Position { line: 629, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "A list of names of users (separated by whitespace) that are\nallowed to connect to the Nix daemon. As with\n{option}`nix.settings.trusted-users`, you can specify groups by\nprefixing them with `@`. Also, you can\nallow all users by specifying `*`. The\ndefault is `*`. Note that trusted users are\nalways allowed to connect.\n", span: Span { start: Position { line: 630, column: 1, }, end: Position { line: 637, column: 15, }, }, }, ), ], span: Span { start: Position { line: 629, column: 39, }, end: Position { line: 637, column: 17, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 625, column: 38, }, end: Position { line: 638, column: 14, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 484, column: 21, }, end: Position { line: 639, column: 12, }, }, }, ), }, ), ], span: Span { start: Position { line: 481, column: 32, }, end: Position { line: 640, column: 10, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 641, column: 9, }, end: Position { line: 641, column: 16, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 641, column: 19, }, end: Position { line: 641, column: 22, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "example", span: Span { start: Position { line: 642, column: 9, }, end: Position { line: 642, column: 16, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "literalExpression", span: Span { start: Position { line: 642, column: 19, }, end: Position { line: 642, column: 36, }, }, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "{\n use-sandbox = true;\n show-trace = true;\n\n system-features = [ \"big-parallel\" \"kvm\" \"recursive-nix\" ];\n sandbox-paths = { \"/bin/sh\" = \"", span: Span { start: Position { line: 643, column: 1, }, end: Position { line: 648, column: 44, }, }, }, ), Raw( PartRaw { content: "$", span: Span { start: Position { line: 643, column: 1, }, end: Position { line: 648, column: 47, }, }, }, ), Raw( PartRaw { content: "{pkgs.busybox-sandbox-shell.out}/bin/busybox\"; };\n}\n", span: Span { start: Position { line: 643, column: 1, }, end: Position { line: 650, column: 9, }, }, }, ), ], span: Span { start: Position { line: 642, column: 37, }, end: Position { line: 650, column: 11, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "description", span: Span { start: Position { line: 651, column: 9, }, end: Position { line: 651, column: 20, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 651, column: 23, }, end: Position { line: 651, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mdDoc", span: Span { start: Position { line: 651, column: 27, }, end: Position { line: 651, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "Configuration for Nix, see\n or\n{manpage}`nix.conf(5)` for avalaible options.\nThe value declared here will be translated directly to the key-value pairs Nix expects.\n\nYou can use {command}`nix-instantiate --eval --strict '' -A config.nix.settings`\nto view the current value. By default it is empty.\n\nNix configurations defined under {option}`nix.*` will be translated and applied to this\noption. In addition, configuration specified in {option}`nix.extraOptions` which will be appended\nverbatim to the resulting config file.\n", span: Span { start: Position { line: 652, column: 1, }, end: Position { line: 663, column: 9, }, }, }, ), ], span: Span { start: Position { line: 651, column: 33, }, end: Position { line: 663, column: 11, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 480, column: 27, }, end: Position { line: 664, column: 8, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 125, column: 11, }, end: Position { line: 665, column: 6, }, }, }, ), }, ), ], span: Span { start: Position { line: 123, column: 13, }, end: Position { line: 666, column: 4, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "config", span: Span { start: Position { line: 671, column: 3, }, end: Position { line: 671, column: 9, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkIf", span: Span { start: Position { line: 671, column: 12, }, end: Position { line: 671, column: 16, }, }, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 671, column: 17, }, end: Position { line: 671, column: 20, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "enable", span: Span { start: Position { line: 671, column: 21, }, end: Position { line: 671, column: 27, }, }, }, ), ], default: None, }, ), Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "environment", span: Span { start: Position { line: 672, column: 5, }, end: Position { line: 672, column: 16, }, }, }, ), Raw( PartRaw { content: "systemPackages", span: Span { start: Position { line: 672, column: 17, }, end: Position { line: 672, column: 31, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: List( List { elements: [ Identifier( Identifier { id: "nixPackage", span: Span { start: Position { line: 674, column: 9, }, end: Position { line: 674, column: 19, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 675, column: 9, }, end: Position { line: 675, column: 13, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nix-info", span: Span { start: Position { line: 675, column: 14, }, end: Position { line: 675, column: 22, }, }, }, ), ], default: None, }, ), ], span: Span { start: Position { line: 673, column: 7, }, end: Position { line: 676, column: 8, }, }, }, ), operator: Concatenation, right: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "optional", span: Span { start: Position { line: 677, column: 10, }, end: Position { line: 677, column: 18, }, }, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 677, column: 20, }, end: Position { line: 677, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "programs", span: Span { start: Position { line: 677, column: 27, }, end: Position { line: 677, column: 35, }, }, }, ), Raw( PartRaw { content: "bash", span: Span { start: Position { line: 677, column: 36, }, end: Position { line: 677, column: 40, }, }, }, ), Raw( PartRaw { content: "enableCompletion", span: Span { start: Position { line: 677, column: 41, }, end: Position { line: 677, column: 57, }, }, }, ), ], default: None, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 677, column: 59, }, end: Position { line: 677, column: 63, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nix-bash-completions", span: Span { start: Position { line: 677, column: 64, }, end: Position { line: 677, column: 84, }, }, }, ), ], default: None, }, ), ], }, ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "environment", span: Span { start: Position { line: 679, column: 5, }, end: Position { line: 679, column: 16, }, }, }, ), Raw( PartRaw { content: "etc", span: Span { start: Position { line: 679, column: 17, }, end: Position { line: 679, column: 20, }, }, }, ), Expression( PartExpression { expression: String( String_ { parts: [ Raw( PartRaw { content: "nix/nix.conf", span: Span { start: Position { line: 679, column: 22, }, end: Position { line: 679, column: 34, }, }, }, ), ], span: Span { start: Position { line: 679, column: 21, }, end: Position { line: 679, column: 35, }, }, }, ), }, ), Raw( PartRaw { content: "source", span: Span { start: Position { line: 679, column: 36, }, end: Position { line: 679, column: 42, }, }, }, ), ], to: Identifier( Identifier { id: "nixConf", span: Span { start: Position { line: 679, column: 45, }, end: Position { line: 679, column: 52, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "environment", span: Span { start: Position { line: 681, column: 5, }, end: Position { line: 681, column: 16, }, }, }, ), Raw( PartRaw { content: "etc", span: Span { start: Position { line: 681, column: 17, }, end: Position { line: 681, column: 20, }, }, }, ), Expression( PartExpression { expression: String( String_ { parts: [ Raw( PartRaw { content: "nix/registry.json", span: Span { start: Position { line: 681, column: 22, }, end: Position { line: 681, column: 39, }, }, }, ), ], span: Span { start: Position { line: 681, column: 21, }, end: Position { line: 681, column: 40, }, }, }, ), }, ), Raw( PartRaw { content: "text", span: Span { start: Position { line: 681, column: 41, }, end: Position { line: 681, column: 45, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "builtins", span: Span { start: Position { line: 681, column: 48, }, end: Position { line: 681, column: 56, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "toJSON", span: Span { start: Position { line: 681, column: 57, }, end: Position { line: 681, column: 63, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "version", span: Span { start: Position { line: 682, column: 7, }, end: Position { line: 682, column: 14, }, }, }, ), ], to: Integer( Integer { value: "2", span: Span { start: Position { line: 682, column: 17, }, end: Position { line: 682, column: 18, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "flakes", span: Span { start: Position { line: 683, column: 7, }, end: Position { line: 683, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mapAttrsToList", span: Span { start: Position { line: 683, column: 16, }, end: Position { line: 683, column: 30, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "n", }, ), body: Function( Function { head: Simple( FunctionHeadSimple { identifier: "v", }, ), body: Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: Some( Identifier( Identifier { id: "v", span: Span { start: Position { line: 683, column: 49, }, end: Position { line: 683, column: 50, }, }, }, ), ), attributes: [ Raw( PartRaw { content: "from", span: Span { start: Position { line: 683, column: 52, }, end: Position { line: 683, column: 56, }, }, }, ), Raw( PartRaw { content: "to", span: Span { start: Position { line: 683, column: 57, }, end: Position { line: 683, column: 59, }, }, }, ), Raw( PartRaw { content: "exact", span: Span { start: Position { line: 683, column: 60, }, end: Position { line: 683, column: 65, }, }, }, ), ], span: Span { start: Position { line: 683, column: 39, }, end: Position { line: 683, column: 66, }, }, }, ), ], span: Span { start: Position { line: 683, column: 38, }, end: Position { line: 683, column: 68, }, }, }, ), span: Span { start: Position { line: 683, column: 35, }, end: Position { line: 683, column: 68, }, }, }, ), span: Span { start: Position { line: 683, column: 32, }, end: Position { line: 683, column: 68, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 683, column: 70, }, end: Position { line: 683, column: 73, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "registry", span: Span { start: Position { line: 683, column: 74, }, end: Position { line: 683, column: 82, }, }, }, ), ], default: None, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 681, column: 64, }, end: Position { line: 684, column: 6, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "environment", span: Span { start: Position { line: 688, column: 5, }, end: Position { line: 688, column: 16, }, }, }, ), Raw( PartRaw { content: "etc", span: Span { start: Position { line: 688, column: 17, }, end: Position { line: 688, column: 20, }, }, }, ), Expression( PartExpression { expression: String( String_ { parts: [ Raw( PartRaw { content: "nix/machines", span: Span { start: Position { line: 688, column: 22, }, end: Position { line: 688, column: 34, }, }, }, ), ], span: Span { start: Position { line: 688, column: 21, }, end: Position { line: 688, column: 35, }, }, }, ), }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkIf", span: Span { start: Position { line: 688, column: 38, }, end: Position { line: 688, column: 42, }, }, }, ), arguments: [ BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 688, column: 44, }, end: Position { line: 688, column: 47, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "buildMachines", span: Span { start: Position { line: 688, column: 48, }, end: Position { line: 688, column: 61, }, }, }, ), ], default: None, }, ), operator: NotEqualTo, right: List( List { elements: [], span: Span { start: Position { line: 688, column: 65, }, end: Position { line: 688, column: 68, }, }, }, ), }, ), Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "text", span: Span { start: Position { line: 689, column: 7, }, end: Position { line: 689, column: 11, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "concatMapStrings", span: Span { start: Position { line: 690, column: 9, }, end: Position { line: 690, column: 25, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "machine", }, ), body: BinaryOperation( BinaryOperation { left: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "concatStringsSep", span: Span { start: Position { line: 692, column: 14, }, end: Position { line: 692, column: 30, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: " ", span: Span { start: Position { line: 692, column: 32, }, end: Position { line: 692, column: 33, }, }, }, ), ], span: Span { start: Position { line: 692, column: 31, }, end: Position { line: 692, column: 34, }, }, }, ), BinaryOperation( BinaryOperation { left: List( List { elements: [ String( String_ { parts: [ Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "optionalString", span: Span { start: Position { line: 693, column: 18, }, end: Position { line: 693, column: 32, }, }, }, ), arguments: [ BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 693, column: 34, }, end: Position { line: 693, column: 41, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "protocol", span: Span { start: Position { line: 693, column: 42, }, end: Position { line: 693, column: 50, }, }, }, ), ], default: None, }, ), operator: NotEqualTo, right: Identifier( Identifier { id: "null", span: Span { start: Position { line: 693, column: 54, }, end: Position { line: 693, column: 58, }, }, }, ), }, ), String( String_ { parts: [ Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 693, column: 63, }, end: Position { line: 693, column: 70, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "protocol", span: Span { start: Position { line: 693, column: 71, }, end: Position { line: 693, column: 79, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: "://", span: Span { start: Position { line: 693, column: 61, }, end: Position { line: 693, column: 83, }, }, }, ), ], span: Span { start: Position { line: 693, column: 60, }, end: Position { line: 693, column: 84, }, }, }, ), ], }, ), }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "optionalString", span: Span { start: Position { line: 693, column: 87, }, end: Position { line: 693, column: 101, }, }, }, ), arguments: [ BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 693, column: 103, }, end: Position { line: 693, column: 110, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "sshUser", span: Span { start: Position { line: 693, column: 111, }, end: Position { line: 693, column: 118, }, }, }, ), ], default: None, }, ), operator: NotEqualTo, right: Identifier( Identifier { id: "null", span: Span { start: Position { line: 693, column: 122, }, end: Position { line: 693, column: 126, }, }, }, ), }, ), String( String_ { parts: [ Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 693, column: 131, }, end: Position { line: 693, column: 138, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "sshUser", span: Span { start: Position { line: 693, column: 139, }, end: Position { line: 693, column: 146, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: "@", span: Span { start: Position { line: 693, column: 129, }, end: Position { line: 693, column: 148, }, }, }, ), ], span: Span { start: Position { line: 693, column: 128, }, end: Position { line: 693, column: 149, }, }, }, ), ], }, ), }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 693, column: 152, }, end: Position { line: 693, column: 159, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "hostName", span: Span { start: Position { line: 693, column: 160, }, end: Position { line: 693, column: 168, }, }, }, ), ], default: None, }, ), }, ), ], span: Span { start: Position { line: 693, column: 15, }, end: Position { line: 693, column: 170, }, }, }, ), IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 694, column: 19, }, end: Position { line: 694, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 694, column: 27, }, end: Position { line: 694, column: 33, }, }, }, ), ], default: None, }, ), operator: NotEqualTo, right: Identifier( Identifier { id: "null", span: Span { start: Position { line: 694, column: 37, }, end: Position { line: 694, column: 41, }, }, }, ), }, ), then: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 694, column: 47, }, end: Position { line: 694, column: 54, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 694, column: 55, }, end: Position { line: 694, column: 61, }, }, }, ), ], default: None, }, ), else_: IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 694, column: 70, }, end: Position { line: 694, column: 77, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "systems", span: Span { start: Position { line: 694, column: 78, }, end: Position { line: 694, column: 85, }, }, }, ), ], default: None, }, ), operator: NotEqualTo, right: List( List { elements: [], span: Span { start: Position { line: 694, column: 89, }, end: Position { line: 694, column: 92, }, }, }, ), }, ), then: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "concatStringsSep", span: Span { start: Position { line: 694, column: 98, }, end: Position { line: 694, column: 114, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: ",", span: Span { start: Position { line: 694, column: 116, }, end: Position { line: 694, column: 117, }, }, }, ), ], span: Span { start: Position { line: 694, column: 115, }, end: Position { line: 694, column: 118, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 694, column: 119, }, end: Position { line: 694, column: 126, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "systems", span: Span { start: Position { line: 694, column: 127, }, end: Position { line: 694, column: 134, }, }, }, ), ], default: None, }, ), ], }, ), else_: String( String_ { parts: [ Raw( PartRaw { content: "-", span: Span { start: Position { line: 694, column: 141, }, end: Position { line: 694, column: 142, }, }, }, ), ], span: Span { start: Position { line: 694, column: 140, }, end: Position { line: 694, column: 143, }, }, }, ), span: Span { start: Position { line: 694, column: 67, }, end: Position { line: 694, column: 143, }, }, }, ), span: Span { start: Position { line: 694, column: 16, }, end: Position { line: 694, column: 143, }, }, }, ), IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 695, column: 19, }, end: Position { line: 695, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "sshKey", span: Span { start: Position { line: 695, column: 27, }, end: Position { line: 695, column: 33, }, }, }, ), ], default: None, }, ), operator: NotEqualTo, right: Identifier( Identifier { id: "null", span: Span { start: Position { line: 695, column: 37, }, end: Position { line: 695, column: 41, }, }, }, ), }, ), then: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 695, column: 47, }, end: Position { line: 695, column: 54, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "sshKey", span: Span { start: Position { line: 695, column: 55, }, end: Position { line: 695, column: 61, }, }, }, ), ], default: None, }, ), else_: String( String_ { parts: [ Raw( PartRaw { content: "-", span: Span { start: Position { line: 695, column: 68, }, end: Position { line: 695, column: 69, }, }, }, ), ], span: Span { start: Position { line: 695, column: 67, }, end: Position { line: 695, column: 70, }, }, }, ), span: Span { start: Position { line: 695, column: 16, }, end: Position { line: 695, column: 70, }, }, }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 696, column: 16, }, end: Position { line: 696, column: 24, }, }, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 696, column: 25, }, end: Position { line: 696, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "maxJobs", span: Span { start: Position { line: 696, column: 33, }, end: Position { line: 696, column: 40, }, }, }, ), ], default: None, }, ), ], }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 697, column: 16, }, end: Position { line: 697, column: 24, }, }, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 697, column: 25, }, end: Position { line: 697, column: 32, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "speedFactor", span: Span { start: Position { line: 697, column: 33, }, end: Position { line: 697, column: 44, }, }, }, ), ], default: None, }, ), ], }, ), LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "res", span: Span { start: Position { line: 698, column: 20, }, end: Position { line: 698, column: 23, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 698, column: 27, }, end: Position { line: 698, column: 34, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "supportedFeatures", span: Span { start: Position { line: 698, column: 35, }, end: Position { line: 698, column: 52, }, }, }, ), ], default: None, }, ), operator: Concatenation, right: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 698, column: 56, }, end: Position { line: 698, column: 63, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mandatoryFeatures", span: Span { start: Position { line: 698, column: 64, }, end: Position { line: 698, column: 81, }, }, }, ), ], default: None, }, ), }, ), }, ), ], target: IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: Identifier( Identifier { id: "res", span: Span { start: Position { line: 699, column: 23, }, end: Position { line: 699, column: 26, }, }, }, ), operator: EqualTo, right: List( List { elements: [], span: Span { start: Position { line: 699, column: 30, }, end: Position { line: 699, column: 32, }, }, }, ), }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "-", span: Span { start: Position { line: 699, column: 40, }, end: Position { line: 699, column: 41, }, }, }, ), ], span: Span { start: Position { line: 699, column: 39, }, end: Position { line: 699, column: 42, }, }, }, ), else_: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "concatStringsSep", span: Span { start: Position { line: 699, column: 49, }, end: Position { line: 699, column: 65, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: ",", span: Span { start: Position { line: 699, column: 67, }, end: Position { line: 699, column: 68, }, }, }, ), ], span: Span { start: Position { line: 699, column: 66, }, end: Position { line: 699, column: 69, }, }, }, ), Identifier( Identifier { id: "res", span: Span { start: Position { line: 699, column: 70, }, end: Position { line: 699, column: 73, }, }, }, ), ], }, ), span: Span { start: Position { line: 699, column: 19, }, end: Position { line: 699, column: 74, }, }, }, ), span: Span { start: Position { line: 698, column: 16, }, end: Position { line: 699, column: 74, }, }, }, ), LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "res", span: Span { start: Position { line: 700, column: 20, }, end: Position { line: 700, column: 23, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 700, column: 26, }, end: Position { line: 700, column: 33, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mandatoryFeatures", span: Span { start: Position { line: 700, column: 34, }, end: Position { line: 700, column: 51, }, }, }, ), ], default: None, }, ), }, ), ], target: IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: Identifier( Identifier { id: "res", span: Span { start: Position { line: 701, column: 23, }, end: Position { line: 701, column: 26, }, }, }, ), operator: EqualTo, right: List( List { elements: [], span: Span { start: Position { line: 701, column: 30, }, end: Position { line: 701, column: 32, }, }, }, ), }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "-", span: Span { start: Position { line: 701, column: 40, }, end: Position { line: 701, column: 41, }, }, }, ), ], span: Span { start: Position { line: 701, column: 39, }, end: Position { line: 701, column: 42, }, }, }, ), else_: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "concatStringsSep", span: Span { start: Position { line: 701, column: 49, }, end: Position { line: 701, column: 65, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: ",", span: Span { start: Position { line: 701, column: 67, }, end: Position { line: 701, column: 68, }, }, }, ), ], span: Span { start: Position { line: 701, column: 66, }, end: Position { line: 701, column: 69, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 701, column: 70, }, end: Position { line: 701, column: 77, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mandatoryFeatures", span: Span { start: Position { line: 701, column: 78, }, end: Position { line: 701, column: 95, }, }, }, ), ], default: None, }, ), ], }, ), span: Span { start: Position { line: 701, column: 19, }, end: Position { line: 701, column: 96, }, }, }, ), span: Span { start: Position { line: 700, column: 16, }, end: Position { line: 701, column: 96, }, }, }, ), ], span: Span { start: Position { line: 692, column: 36, }, end: Position { line: 702, column: 14, }, }, }, ), operator: Concatenation, right: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "optional", span: Span { start: Position { line: 703, column: 16, }, end: Position { line: 703, column: 24, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isNixAtLeast", span: Span { start: Position { line: 703, column: 26, }, end: Position { line: 703, column: 38, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "2.4pre", span: Span { start: Position { line: 703, column: 40, }, end: Position { line: 703, column: 46, }, }, }, ), ], span: Span { start: Position { line: 703, column: 39, }, end: Position { line: 703, column: 47, }, }, }, ), ], }, ), IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 703, column: 53, }, end: Position { line: 703, column: 60, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "publicHostKey", span: Span { start: Position { line: 703, column: 61, }, end: Position { line: 703, column: 74, }, }, }, ), ], default: None, }, ), operator: NotEqualTo, right: Identifier( Identifier { id: "null", span: Span { start: Position { line: 703, column: 78, }, end: Position { line: 703, column: 82, }, }, }, ), }, ), then: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "machine", span: Span { start: Position { line: 703, column: 88, }, end: Position { line: 703, column: 95, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "publicHostKey", span: Span { start: Position { line: 703, column: 96, }, end: Position { line: 703, column: 109, }, }, }, ), ], default: None, }, ), else_: String( String_ { parts: [ Raw( PartRaw { content: "-", span: Span { start: Position { line: 703, column: 116, }, end: Position { line: 703, column: 117, }, }, }, ), ], span: Span { start: Position { line: 703, column: 115, }, end: Position { line: 703, column: 118, }, }, }, ), span: Span { start: Position { line: 703, column: 50, }, end: Position { line: 703, column: 118, }, }, }, ), ], }, ), }, ), ], }, ), operator: Addition, right: String( String_ { parts: [ Raw( PartRaw { content: "\n", span: Span { start: Position { line: 704, column: 16, }, end: Position { line: 704, column: 18, }, }, }, ), ], span: Span { start: Position { line: 704, column: 15, }, end: Position { line: 704, column: 19, }, }, }, ), }, ), span: Span { start: Position { line: 691, column: 12, }, end: Position { line: 704, column: 19, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 706, column: 11, }, end: Position { line: 706, column: 14, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "buildMachines", span: Span { start: Position { line: 706, column: 15, }, end: Position { line: 706, column: 28, }, }, }, ), ], default: None, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 688, column: 70, }, end: Position { line: 707, column: 6, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "assertions", span: Span { start: Position { line: 709, column: 5, }, end: Position { line: 709, column: 15, }, }, }, ), ], to: LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "badMachine", span: Span { start: Position { line: 710, column: 11, }, end: Position { line: 710, column: 21, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "m", }, ), body: BinaryOperation( BinaryOperation { left: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "m", span: Span { start: Position { line: 710, column: 27, }, end: Position { line: 710, column: 28, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 710, column: 29, }, end: Position { line: 710, column: 35, }, }, }, ), ], default: None, }, ), operator: EqualTo, right: Identifier( Identifier { id: "null", span: Span { start: Position { line: 710, column: 39, }, end: Position { line: 710, column: 43, }, }, }, ), }, ), operator: LogicalAnd, right: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "m", span: Span { start: Position { line: 710, column: 47, }, end: Position { line: 710, column: 48, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "systems", span: Span { start: Position { line: 710, column: 49, }, end: Position { line: 710, column: 56, }, }, }, ), ], default: None, }, ), operator: EqualTo, right: List( List { elements: [], span: Span { start: Position { line: 710, column: 60, }, end: Position { line: 710, column: 63, }, }, }, ), }, ), }, ), span: Span { start: Position { line: 710, column: 24, }, end: Position { line: 710, column: 63, }, }, }, ), }, ), ], target: List( List { elements: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "assertion", span: Span { start: Position { line: 714, column: 11, }, end: Position { line: 714, column: 20, }, }, }, ), ], to: UnaryOperation( UnaryOperation { operator: Not, operand: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "any", span: Span { start: Position { line: 714, column: 25, }, end: Position { line: 714, column: 28, }, }, }, ), arguments: [ Identifier( Identifier { id: "badMachine", span: Span { start: Position { line: 714, column: 29, }, end: Position { line: 714, column: 39, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 714, column: 40, }, end: Position { line: 714, column: 43, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "buildMachines", span: Span { start: Position { line: 714, column: 44, }, end: Position { line: 714, column: 57, }, }, }, ), ], default: None, }, ), ], }, ), span: Span { start: Position { line: 714, column: 23, }, end: Position { line: 714, column: 58, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "message", span: Span { start: Position { line: 715, column: 11, }, end: Position { line: 715, column: 18, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: BinaryOperation( BinaryOperation { left: IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "At least one system type (via system or\n systems) must be set for every build machine.\n Invalid machine specifications:\n", span: Span { start: Position { line: 716, column: 1, }, end: Position { line: 719, column: 11, }, }, }, ), ], span: Span { start: Position { line: 715, column: 21, }, end: Position { line: 719, column: 13, }, }, }, ), operator: Addition, right: String( String_ { parts: [ Raw( PartRaw { content: " ", span: Span { start: Position { line: 719, column: 17, }, end: Position { line: 719, column: 23, }, }, }, ), ], span: Span { start: Position { line: 719, column: 16, }, end: Position { line: 719, column: 24, }, }, }, ), }, ), operator: Addition, right: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "concatStringsSep", span: Span { start: Position { line: 720, column: 12, }, end: Position { line: 720, column: 28, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "\n ", span: Span { start: Position { line: 720, column: 30, }, end: Position { line: 720, column: 38, }, }, }, ), ], span: Span { start: Position { line: 720, column: 29, }, end: Position { line: 720, column: 39, }, }, }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "map", span: Span { start: Position { line: 721, column: 14, }, end: Position { line: 721, column: 17, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "m", }, ), body: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "m", span: Span { start: Position { line: 721, column: 22, }, end: Position { line: 721, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "hostName", span: Span { start: Position { line: 721, column: 24, }, end: Position { line: 721, column: 32, }, }, }, ), ], default: None, }, ), span: Span { start: Position { line: 721, column: 19, }, end: Position { line: 721, column: 32, }, }, }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "filter", span: Span { start: Position { line: 722, column: 16, }, end: Position { line: 722, column: 22, }, }, }, ), arguments: [ Identifier( Identifier { id: "badMachine", span: Span { start: Position { line: 722, column: 24, }, end: Position { line: 722, column: 34, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 722, column: 36, }, end: Position { line: 722, column: 39, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "buildMachines", span: Span { start: Position { line: 722, column: 40, }, end: Position { line: 722, column: 53, }, }, }, ), ], default: None, }, ), ], }, ), ], }, ), ], }, ), }, ), }, ), ], span: Span { start: Position { line: 713, column: 9, }, end: Position { line: 723, column: 10, }, }, }, ), ], span: Span { start: Position { line: 712, column: 7, }, end: Position { line: 724, column: 8, }, }, }, ), span: Span { start: Position { line: 710, column: 7, }, end: Position { line: 724, column: 8, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "systemd", span: Span { start: Position { line: 726, column: 5, }, end: Position { line: 726, column: 12, }, }, }, ), Raw( PartRaw { content: "packages", span: Span { start: Position { line: 726, column: 13, }, end: Position { line: 726, column: 21, }, }, }, ), ], to: List( List { elements: [ Identifier( Identifier { id: "nixPackage", span: Span { start: Position { line: 726, column: 26, }, end: Position { line: 726, column: 36, }, }, }, ), ], span: Span { start: Position { line: 726, column: 24, }, end: Position { line: 726, column: 38, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "systemd", span: Span { start: Position { line: 732, column: 5, }, end: Position { line: 732, column: 12, }, }, }, ), Raw( PartRaw { content: "tmpfiles", span: Span { start: Position { line: 732, column: 13, }, end: Position { line: 732, column: 21, }, }, }, ), Raw( PartRaw { content: "rules", span: Span { start: Position { line: 732, column: 22, }, end: Position { line: 732, column: 27, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "d /nix/var/nix/daemon-socket 0755 root root - -", span: Span { start: Position { line: 733, column: 8, }, end: Position { line: 733, column: 55, }, }, }, ), ], span: Span { start: Position { line: 733, column: 7, }, end: Position { line: 733, column: 56, }, }, }, ), ], span: Span { start: Position { line: 732, column: 30, }, end: Position { line: 734, column: 6, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "systemd", span: Span { start: Position { line: 736, column: 5, }, end: Position { line: 736, column: 12, }, }, }, ), Raw( PartRaw { content: "sockets", span: Span { start: Position { line: 736, column: 13, }, end: Position { line: 736, column: 20, }, }, }, ), Raw( PartRaw { content: "nix-daemon", span: Span { start: Position { line: 736, column: 21, }, end: Position { line: 736, column: 31, }, }, }, ), Raw( PartRaw { content: "wantedBy", span: Span { start: Position { line: 736, column: 32, }, end: Position { line: 736, column: 40, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "sockets.target", span: Span { start: Position { line: 736, column: 46, }, end: Position { line: 736, column: 60, }, }, }, ), ], span: Span { start: Position { line: 736, column: 45, }, end: Position { line: 736, column: 61, }, }, }, ), ], span: Span { start: Position { line: 736, column: 43, }, end: Position { line: 736, column: 63, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "systemd", span: Span { start: Position { line: 738, column: 5, }, end: Position { line: 738, column: 12, }, }, }, ), Raw( PartRaw { content: "services", span: Span { start: Position { line: 738, column: 13, }, end: Position { line: 738, column: 21, }, }, }, ), Raw( PartRaw { content: "nix-daemon", span: Span { start: Position { line: 738, column: 22, }, end: Position { line: 738, column: 32, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "path", span: Span { start: Position { line: 740, column: 9, }, end: Position { line: 740, column: 13, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: List( List { elements: [ Identifier( Identifier { id: "nixPackage", span: Span { start: Position { line: 740, column: 18, }, end: Position { line: 740, column: 28, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 740, column: 29, }, end: Position { line: 740, column: 33, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "util-linux", span: Span { start: Position { line: 740, column: 34, }, end: Position { line: 740, column: 44, }, }, }, ), ], default: None, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 740, column: 45, }, end: Position { line: 740, column: 51, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "programs", span: Span { start: Position { line: 740, column: 52, }, end: Position { line: 740, column: 60, }, }, }, ), Raw( PartRaw { content: "ssh", span: Span { start: Position { line: 740, column: 61, }, end: Position { line: 740, column: 64, }, }, }, ), Raw( PartRaw { content: "package", span: Span { start: Position { line: 740, column: 65, }, end: Position { line: 740, column: 72, }, }, }, ), ], default: None, }, ), ], span: Span { start: Position { line: 740, column: 16, }, end: Position { line: 740, column: 74, }, }, }, ), operator: Concatenation, right: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "optionals", span: Span { start: Position { line: 741, column: 14, }, end: Position { line: 741, column: 23, }, }, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 741, column: 24, }, end: Position { line: 741, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "distributedBuilds", span: Span { start: Position { line: 741, column: 28, }, end: Position { line: 741, column: 45, }, }, }, ), ], default: None, }, ), List( List { elements: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 741, column: 48, }, end: Position { line: 741, column: 52, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "gzip", span: Span { start: Position { line: 741, column: 53, }, end: Position { line: 741, column: 57, }, }, }, ), ], default: None, }, ), ], span: Span { start: Position { line: 741, column: 46, }, end: Position { line: 741, column: 59, }, }, }, ), ], }, ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "environment", span: Span { start: Position { line: 743, column: 9, }, end: Position { line: 743, column: 20, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 743, column: 23, }, end: Position { line: 743, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "envVars", span: Span { start: Position { line: 743, column: 27, }, end: Position { line: 743, column: 34, }, }, }, ), ], default: None, }, ), operator: Update, right: BinaryOperation( BinaryOperation { left: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "CURL_CA_BUNDLE", span: Span { start: Position { line: 744, column: 16, }, end: Position { line: 744, column: 30, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "/etc/ssl/certs/ca-certificates.crt", span: Span { start: Position { line: 744, column: 34, }, end: Position { line: 744, column: 68, }, }, }, ), ], span: Span { start: Position { line: 744, column: 33, }, end: Position { line: 744, column: 69, }, }, }, ), }, ), ], span: Span { start: Position { line: 744, column: 14, }, end: Position { line: 744, column: 72, }, }, }, ), operator: Update, right: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 745, column: 14, }, end: Position { line: 745, column: 20, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "networking", span: Span { start: Position { line: 745, column: 21, }, end: Position { line: 745, column: 31, }, }, }, ), Raw( PartRaw { content: "proxy", span: Span { start: Position { line: 745, column: 32, }, end: Position { line: 745, column: 37, }, }, }, ), Raw( PartRaw { content: "envVars", span: Span { start: Position { line: 745, column: 38, }, end: Position { line: 745, column: 45, }, }, }, ), ], default: None, }, ), }, ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "unitConfig", span: Span { start: Position { line: 747, column: 9, }, end: Position { line: 747, column: 19, }, }, }, ), Raw( PartRaw { content: "RequiresMountsFor", span: Span { start: Position { line: 747, column: 20, }, end: Position { line: 747, column: 37, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "/nix/store", span: Span { start: Position { line: 747, column: 41, }, end: Position { line: 747, column: 51, }, }, }, ), ], span: Span { start: Position { line: 747, column: 40, }, end: Position { line: 747, column: 52, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "serviceConfig", span: Span { start: Position { line: 749, column: 9, }, end: Position { line: 749, column: 22, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "CPUSchedulingPolicy", span: Span { start: Position { line: 751, column: 13, }, end: Position { line: 751, column: 32, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 751, column: 35, }, end: Position { line: 751, column: 38, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "daemonCPUSchedPolicy", span: Span { start: Position { line: 751, column: 39, }, end: Position { line: 751, column: 59, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "IOSchedulingClass", span: Span { start: Position { line: 752, column: 13, }, end: Position { line: 752, column: 30, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 752, column: 33, }, end: Position { line: 752, column: 36, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "daemonIOSchedClass", span: Span { start: Position { line: 752, column: 37, }, end: Position { line: 752, column: 55, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "IOSchedulingPriority", span: Span { start: Position { line: 753, column: 13, }, end: Position { line: 753, column: 33, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 753, column: 36, }, end: Position { line: 753, column: 39, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "daemonIOSchedPriority", span: Span { start: Position { line: 753, column: 40, }, end: Position { line: 753, column: 61, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "LimitNOFILE", span: Span { start: Position { line: 754, column: 13, }, end: Position { line: 754, column: 24, }, }, }, ), ], to: Integer( Integer { value: "1048576", span: Span { start: Position { line: 754, column: 27, }, end: Position { line: 754, column: 34, }, }, }, ), }, ), ], span: Span { start: Position { line: 750, column: 11, }, end: Position { line: 755, column: 12, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "restartTriggers", span: Span { start: Position { line: 757, column: 9, }, end: Position { line: 757, column: 24, }, }, }, ), ], to: List( List { elements: [ Identifier( Identifier { id: "nixConf", span: Span { start: Position { line: 757, column: 29, }, end: Position { line: 757, column: 36, }, }, }, ), ], span: Span { start: Position { line: 757, column: 27, }, end: Position { line: 757, column: 38, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "stopIfChanged", span: Span { start: Position { line: 790, column: 9, }, end: Position { line: 790, column: 22, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 790, column: 25, }, end: Position { line: 790, column: 30, }, }, }, ), }, ), ], span: Span { start: Position { line: 739, column: 7, }, end: Position { line: 792, column: 8, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "environment", span: Span { start: Position { line: 795, column: 5, }, end: Position { line: 795, column: 16, }, }, }, ), Raw( PartRaw { content: "sessionVariables", span: Span { start: Position { line: 795, column: 17, }, end: Position { line: 795, column: 33, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 795, column: 36, }, end: Position { line: 795, column: 39, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "envVars", span: Span { start: Position { line: 795, column: 40, }, end: Position { line: 795, column: 47, }, }, }, ), ], default: None, }, ), operator: Update, right: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "NIX_PATH", span: Span { start: Position { line: 795, column: 53, }, end: Position { line: 795, column: 61, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 795, column: 64, }, end: Position { line: 795, column: 67, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nixPath", span: Span { start: Position { line: 795, column: 68, }, end: Position { line: 795, column: 75, }, }, }, ), ], default: None, }, ), }, ), ], span: Span { start: Position { line: 795, column: 51, }, end: Position { line: 795, column: 78, }, }, }, ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "environment", span: Span { start: Position { line: 797, column: 5, }, end: Position { line: 797, column: 16, }, }, }, ), Raw( PartRaw { content: "extraInit", span: Span { start: Position { line: 797, column: 17, }, end: Position { line: 797, column: 26, }, }, }, ), ], to: IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "if [ -e \"$HOME/.nix-defexpr/channels\" ]; then\n export NIX_PATH=\"$HOME/.nix-defexpr/channels", span: Span { start: Position { line: 799, column: 1, }, end: Position { line: 800, column: 55, }, }, }, ), Raw( PartRaw { content: "$", span: Span { start: Position { line: 799, column: 1, }, end: Position { line: 800, column: 58, }, }, }, ), Raw( PartRaw { content: "{NIX_PATH:+:$NIX_PATH}\"\nfi\n", span: Span { start: Position { line: 799, column: 1, }, end: Position { line: 802, column: 7, }, }, }, ), ], span: Span { start: Position { line: 798, column: 7, }, end: Position { line: 802, column: 9, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 804, column: 5, }, end: Position { line: 804, column: 8, }, }, }, ), Raw( PartRaw { content: "nrBuildUsers", span: Span { start: Position { line: 804, column: 9, }, end: Position { line: 804, column: 21, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkDefault", span: Span { start: Position { line: 804, column: 24, }, end: Position { line: 804, column: 33, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "max", span: Span { start: Position { line: 804, column: 35, }, end: Position { line: 804, column: 38, }, }, }, ), arguments: [ Integer( Integer { value: "32", span: Span { start: Position { line: 804, column: 39, }, end: Position { line: 804, column: 41, }, }, }, ), IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 804, column: 46, }, end: Position { line: 804, column: 49, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "settings", span: Span { start: Position { line: 804, column: 50, }, end: Position { line: 804, column: 58, }, }, }, ), Raw( PartRaw { content: "max-jobs", span: Span { start: Position { line: 804, column: 59, }, end: Position { line: 804, column: 67, }, }, }, ), ], default: None, }, ), operator: EqualTo, right: String( String_ { parts: [ Raw( PartRaw { content: "auto", span: Span { start: Position { line: 804, column: 72, }, end: Position { line: 804, column: 76, }, }, }, ), ], span: Span { start: Position { line: 804, column: 71, }, end: Position { line: 804, column: 77, }, }, }, ), }, ), then: Integer( Integer { value: "0", span: Span { start: Position { line: 804, column: 83, }, end: Position { line: 804, column: 84, }, }, }, ), else_: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 804, column: 90, }, end: Position { line: 804, column: 93, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "settings", span: Span { start: Position { line: 804, column: 94, }, end: Position { line: 804, column: 102, }, }, }, ), Raw( PartRaw { content: "max-jobs", span: Span { start: Position { line: 804, column: 103, }, end: Position { line: 804, column: 111, }, }, }, ), ], default: None, }, ), span: Span { start: Position { line: 804, column: 43, }, end: Position { line: 804, column: 111, }, }, }, ), ], }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "users", span: Span { start: Position { line: 806, column: 5, }, end: Position { line: 806, column: 10, }, }, }, ), Raw( PartRaw { content: "users", span: Span { start: Position { line: 806, column: 11, }, end: Position { line: 806, column: 16, }, }, }, ), ], to: Identifier( Identifier { id: "nixbldUsers", span: Span { start: Position { line: 806, column: 19, }, end: Position { line: 806, column: 30, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "services", span: Span { start: Position { line: 808, column: 5, }, end: Position { line: 808, column: 13, }, }, }, ), Raw( PartRaw { content: "xserver", span: Span { start: Position { line: 808, column: 14, }, end: Position { line: 808, column: 21, }, }, }, ), Raw( PartRaw { content: "displayManager", span: Span { start: Position { line: 808, column: 22, }, end: Position { line: 808, column: 36, }, }, }, ), Raw( PartRaw { content: "hiddenUsers", span: Span { start: Position { line: 808, column: 37, }, end: Position { line: 808, column: 48, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "attrNames", span: Span { start: Position { line: 808, column: 51, }, end: Position { line: 808, column: 60, }, }, }, ), arguments: [ Identifier( Identifier { id: "nixbldUsers", span: Span { start: Position { line: 808, column: 61, }, end: Position { line: 808, column: 72, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 810, column: 5, }, end: Position { line: 810, column: 11, }, }, }, ), Raw( PartRaw { content: "activationScripts", span: Span { start: Position { line: 810, column: 12, }, end: Position { line: 810, column: 29, }, }, }, ), Raw( PartRaw { content: "nix", span: Span { start: Position { line: 810, column: 30, }, end: Position { line: 810, column: 33, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "stringAfter", span: Span { start: Position { line: 810, column: 36, }, end: Position { line: 810, column: 47, }, }, }, ), arguments: [ List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "etc", span: Span { start: Position { line: 810, column: 51, }, end: Position { line: 810, column: 54, }, }, }, ), ], span: Span { start: Position { line: 810, column: 50, }, end: Position { line: 810, column: 55, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "users", span: Span { start: Position { line: 810, column: 57, }, end: Position { line: 810, column: 62, }, }, }, ), ], span: Span { start: Position { line: 810, column: 56, }, end: Position { line: 810, column: 63, }, }, }, ), ], span: Span { start: Position { line: 810, column: 48, }, end: Position { line: 810, column: 65, }, }, }, ), IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "install -m 0755 -d /nix/var/nix/{gcroots,profiles}/per-user\n\n# Subscribe the root user to the NixOS channel by default.\nif [ ! -e \"/root/.nix-channels\" ]; then\n echo \"", span: Span { start: Position { line: 812, column: 1, }, end: Position { line: 816, column: 19, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 816, column: 21, }, end: Position { line: 816, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 816, column: 28, }, end: Position { line: 816, column: 34, }, }, }, ), Raw( PartRaw { content: "defaultChannel", span: Span { start: Position { line: 816, column: 35, }, end: Position { line: 816, column: 49, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: " nixos\" > \"/root/.nix-channels\"\nfi\n", span: Span { start: Position { line: 812, column: 1, }, end: Position { line: 818, column: 7, }, }, }, ), ], span: Span { start: Position { line: 811, column: 7, }, end: Position { line: 818, column: 9, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nix", span: Span { start: Position { line: 821, column: 5, }, end: Position { line: 821, column: 8, }, }, }, ), Raw( PartRaw { content: "settings", span: Span { start: Position { line: 821, column: 9, }, end: Position { line: 821, column: 17, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkMerge", span: Span { start: Position { line: 821, column: 20, }, end: Position { line: 821, column: 27, }, }, }, ), arguments: [ List( List { elements: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "trusted-public-keys", span: Span { start: Position { line: 823, column: 9, }, end: Position { line: 823, column: 28, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=", span: Span { start: Position { line: 823, column: 34, }, end: Position { line: 823, column: 96, }, }, }, ), ], span: Span { start: Position { line: 823, column: 33, }, end: Position { line: 823, column: 97, }, }, }, ), ], span: Span { start: Position { line: 823, column: 31, }, end: Position { line: 823, column: 99, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "substituters", span: Span { start: Position { line: 824, column: 9, }, end: Position { line: 824, column: 21, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkAfter", span: Span { start: Position { line: 824, column: 24, }, end: Position { line: 824, column: 31, }, }, }, ), arguments: [ List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "https://cache.nixos.org/", span: Span { start: Position { line: 824, column: 35, }, end: Position { line: 824, column: 59, }, }, }, ), ], span: Span { start: Position { line: 824, column: 34, }, end: Position { line: 824, column: 60, }, }, }, ), ], span: Span { start: Position { line: 824, column: 32, }, end: Position { line: 824, column: 62, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "system-features", span: Span { start: Position { line: 826, column: 9, }, end: Position { line: 826, column: 24, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkDefault", span: Span { start: Position { line: 826, column: 27, }, end: Position { line: 826, column: 36, }, }, }, ), arguments: [ BinaryOperation( BinaryOperation { left: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "nixos-test", span: Span { start: Position { line: 827, column: 14, }, end: Position { line: 827, column: 24, }, }, }, ), ], span: Span { start: Position { line: 827, column: 13, }, end: Position { line: 827, column: 25, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "benchmark", span: Span { start: Position { line: 827, column: 27, }, end: Position { line: 827, column: 36, }, }, }, ), ], span: Span { start: Position { line: 827, column: 26, }, end: Position { line: 827, column: 37, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "big-parallel", span: Span { start: Position { line: 827, column: 39, }, end: Position { line: 827, column: 51, }, }, }, ), ], span: Span { start: Position { line: 827, column: 38, }, end: Position { line: 827, column: 52, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "kvm", span: Span { start: Position { line: 827, column: 54, }, end: Position { line: 827, column: 57, }, }, }, ), ], span: Span { start: Position { line: 827, column: 53, }, end: Position { line: 827, column: 58, }, }, }, ), ], span: Span { start: Position { line: 827, column: 11, }, end: Position { line: 827, column: 60, }, }, }, ), operator: Concatenation, right: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "optionals", span: Span { start: Position { line: 828, column: 11, }, end: Position { line: 828, column: 20, }, }, }, ), arguments: [ HasAttribute( HasAttribute { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 828, column: 22, }, end: Position { line: 828, column: 26, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "hostPlatform", span: Span { start: Position { line: 828, column: 27, }, end: Position { line: 828, column: 39, }, }, }, ), ], default: None, }, ), attribute_path: [ Raw( PartRaw { content: "gcc", span: Span { start: Position { line: 828, column: 42, }, end: Position { line: 828, column: 45, }, }, }, ), Raw( PartRaw { content: "arch", span: Span { start: Position { line: 828, column: 46, }, end: Position { line: 828, column: 50, }, }, }, ), ], }, ), BinaryOperation( BinaryOperation { left: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "gccarch-", span: Span { start: Position { line: 830, column: 16, }, end: Position { line: 830, column: 53, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 830, column: 26, }, end: Position { line: 830, column: 30, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "hostPlatform", span: Span { start: Position { line: 830, column: 31, }, end: Position { line: 830, column: 43, }, }, }, ), Raw( PartRaw { content: "gcc", span: Span { start: Position { line: 830, column: 44, }, end: Position { line: 830, column: 47, }, }, }, ), Raw( PartRaw { content: "arch", span: Span { start: Position { line: 830, column: 48, }, end: Position { line: 830, column: 52, }, }, }, ), ], default: None, }, ), }, ), ], span: Span { start: Position { line: 830, column: 15, }, end: Position { line: 830, column: 54, }, }, }, ), ], span: Span { start: Position { line: 830, column: 13, }, end: Position { line: 830, column: 56, }, }, }, ), operator: Concatenation, right: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "map", span: Span { start: Position { line: 831, column: 13, }, end: Position { line: 831, column: 16, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "x", }, ), body: String( String_ { parts: [ Raw( PartRaw { content: "gccarch-", span: Span { start: Position { line: 831, column: 22, }, end: Position { line: 831, column: 34, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "x", span: Span { start: Position { line: 831, column: 32, }, end: Position { line: 831, column: 33, }, }, }, ), }, ), ], span: Span { start: Position { line: 831, column: 21, }, end: Position { line: 831, column: 35, }, }, }, ), span: Span { start: Position { line: 831, column: 18, }, end: Position { line: 831, column: 35, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "systems", span: Span { start: Position { line: 831, column: 37, }, end: Position { line: 831, column: 44, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "architectures", span: Span { start: Position { line: 831, column: 45, }, end: Position { line: 831, column: 58, }, }, }, ), Raw( PartRaw { content: "inferiors", span: Span { start: Position { line: 831, column: 59, }, end: Position { line: 831, column: 68, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 831, column: 71, }, end: Position { line: 831, column: 75, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "hostPlatform", span: Span { start: Position { line: 831, column: 76, }, end: Position { line: 831, column: 88, }, }, }, ), Raw( PartRaw { content: "gcc", span: Span { start: Position { line: 831, column: 89, }, end: Position { line: 831, column: 92, }, }, }, ), Raw( PartRaw { content: "arch", span: Span { start: Position { line: 831, column: 93, }, end: Position { line: 831, column: 97, }, }, }, ), ], default: None, }, ), }, ), ], default: None, }, ), ], }, ), }, ), ], }, ), }, ), ], }, ), }, ), ], span: Span { start: Position { line: 822, column: 7, }, end: Position { line: 834, column: 8, }, }, }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkIf", span: Span { start: Position { line: 836, column: 8, }, end: Position { line: 836, column: 12, }, }, }, ), arguments: [ UnaryOperation( UnaryOperation { operator: Not, operand: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "cfg", span: Span { start: Position { line: 836, column: 15, }, end: Position { line: 836, column: 18, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "distributedBuilds", span: Span { start: Position { line: 836, column: 19, }, end: Position { line: 836, column: 36, }, }, }, ), ], default: None, }, ), span: Span { start: Position { line: 836, column: 14, }, end: Position { line: 836, column: 36, }, }, }, ), Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "builders", span: Span { start: Position { line: 836, column: 40, }, end: Position { line: 836, column: 48, }, }, }, ), ], to: Identifier( Identifier { id: "null", span: Span { start: Position { line: 836, column: 51, }, end: Position { line: 836, column: 55, }, }, }, ), }, ), ], span: Span { start: Position { line: 836, column: 38, }, end: Position { line: 836, column: 58, }, }, }, ), ], }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mkIf", span: Span { start: Position { line: 838, column: 8, }, end: Position { line: 838, column: 12, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "isNixAtLeast", span: Span { start: Position { line: 838, column: 14, }, end: Position { line: 838, column: 26, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "2.3pre", span: Span { start: Position { line: 838, column: 28, }, end: Position { line: 838, column: 34, }, }, }, ), ], span: Span { start: Position { line: 838, column: 27, }, end: Position { line: 838, column: 35, }, }, }, ), ], }, ), Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sandbox-fallback", span: Span { start: Position { line: 838, column: 39, }, end: Position { line: 838, column: 55, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 838, column: 58, }, end: Position { line: 838, column: 63, }, }, }, ), }, ), ], span: Span { start: Position { line: 838, column: 37, }, end: Position { line: 838, column: 66, }, }, }, ), ], }, ), ], span: Span { start: Position { line: 821, column: 28, }, end: Position { line: 839, column: 6, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 671, column: 28, }, end: Position { line: 841, column: 4, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 113, column: 1, }, end: Position { line: 843, column: 2, }, }, }, ), span: Span { start: Position { line: 5, column: 1, }, end: Position { line: 843, column: 2, }, }, }, ), span: Span { start: Position { line: 3, column: 1, }, end: Position { line: 843, column: 2, }, }, }, ), span: Span { start: Position { line: 1, column: 1, }, end: Position { line: 843, column: 2, }, }, }, )