Function( Function { head: Destructured( FunctionHeadDestructured { ellipsis: false, identifier: None, arguments: [ FunctionHeadDestructuredArgument { identifier: "lib", default: None, }, ], }, ), body: LetIn( LetIn { bindings: [ Inherit( BindingInherit { from: Some( PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 2, column: 16, }, end: Position { line: 2, column: 19, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "attrsets", span: Span { start: Position { line: 2, column: 20, }, end: Position { line: 2, column: 28, }, }, }, ), ], default: None, }, ), ), attributes: [ Raw( PartRaw { content: "mapAttrs", span: Span { start: Position { line: 2, column: 30, }, end: Position { line: 2, column: 38, }, }, }, ), ], span: Span { start: Position { line: 2, column: 6, }, end: Position { line: 2, column: 39, }, }, }, ), ], target: Map( Map { recursive: true, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "doubles", span: Span { start: Position { line: 5, column: 3, }, end: Position { line: 5, column: 10, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "import", span: Span { start: Position { line: 5, column: 13, }, end: Position { line: 5, column: 19, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "./doubles.nix", span: Span { start: Position { line: 5, column: 20, }, end: Position { line: 5, column: 33, }, }, }, ), ], span: Span { start: Position { line: 5, column: 20, }, end: Position { line: 5, column: 33, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "lib", span: Span { start: Position { line: 5, column: 44, }, end: Position { line: 5, column: 47, }, }, }, ), ], span: Span { start: Position { line: 5, column: 35, }, end: Position { line: 5, column: 48, }, }, }, ), ], span: Span { start: Position { line: 5, column: 34, }, end: Position { line: 5, column: 50, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "parse", span: Span { start: Position { line: 6, column: 3, }, end: Position { line: 6, column: 8, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "import", span: Span { start: Position { line: 6, column: 11, }, end: Position { line: 6, column: 17, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "./parse.nix", span: Span { start: Position { line: 6, column: 18, }, end: Position { line: 6, column: 29, }, }, }, ), ], span: Span { start: Position { line: 6, column: 18, }, end: Position { line: 6, column: 29, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "lib", span: Span { start: Position { line: 6, column: 40, }, end: Position { line: 6, column: 43, }, }, }, ), ], span: Span { start: Position { line: 6, column: 31, }, end: Position { line: 6, column: 44, }, }, }, ), ], span: Span { start: Position { line: 6, column: 30, }, end: Position { line: 6, column: 46, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "inspect", span: Span { start: Position { line: 7, column: 3, }, end: Position { line: 7, column: 10, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "import", span: Span { start: Position { line: 7, column: 13, }, end: Position { line: 7, column: 19, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "./inspect.nix", span: Span { start: Position { line: 7, column: 20, }, end: Position { line: 7, column: 33, }, }, }, ), ], span: Span { start: Position { line: 7, column: 20, }, end: Position { line: 7, column: 33, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "lib", span: Span { start: Position { line: 7, column: 44, }, end: Position { line: 7, column: 47, }, }, }, ), ], span: Span { start: Position { line: 7, column: 35, }, end: Position { line: 7, column: 48, }, }, }, ), ], span: Span { start: Position { line: 7, column: 34, }, end: Position { line: 7, column: 50, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "platforms", span: Span { start: Position { line: 8, column: 3, }, end: Position { line: 8, column: 12, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "import", span: Span { start: Position { line: 8, column: 15, }, end: Position { line: 8, column: 21, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "./platforms.nix", span: Span { start: Position { line: 8, column: 22, }, end: Position { line: 8, column: 37, }, }, }, ), ], span: Span { start: Position { line: 8, column: 22, }, end: Position { line: 8, column: 37, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "lib", span: Span { start: Position { line: 8, column: 48, }, end: Position { line: 8, column: 51, }, }, }, ), ], span: Span { start: Position { line: 8, column: 39, }, end: Position { line: 8, column: 52, }, }, }, ), ], span: Span { start: Position { line: 8, column: 38, }, end: Position { line: 8, column: 54, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "examples", span: Span { start: Position { line: 9, column: 3, }, end: Position { line: 9, column: 11, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "import", span: Span { start: Position { line: 9, column: 14, }, end: Position { line: 9, column: 20, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "./examples.nix", span: Span { start: Position { line: 9, column: 21, }, end: Position { line: 9, column: 35, }, }, }, ), ], span: Span { start: Position { line: 9, column: 21, }, end: Position { line: 9, column: 35, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "lib", span: Span { start: Position { line: 9, column: 46, }, end: Position { line: 9, column: 49, }, }, }, ), ], span: Span { start: Position { line: 9, column: 37, }, end: Position { line: 9, column: 50, }, }, }, ), ], span: Span { start: Position { line: 9, column: 36, }, end: Position { line: 9, column: 52, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "architectures", span: Span { start: Position { line: 10, column: 3, }, end: Position { line: 10, column: 16, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "import", span: Span { start: Position { line: 10, column: 19, }, end: Position { line: 10, column: 25, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "./architectures.nix", span: Span { start: Position { line: 10, column: 26, }, end: Position { line: 10, column: 45, }, }, }, ), ], span: Span { start: Position { line: 10, column: 26, }, end: Position { line: 10, column: 45, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "lib", span: Span { start: Position { line: 10, column: 56, }, end: Position { line: 10, column: 59, }, }, }, ), ], span: Span { start: Position { line: 10, column: 47, }, end: Position { line: 10, column: 60, }, }, }, ), ], span: Span { start: Position { line: 10, column: 46, }, end: Position { line: 10, column: 62, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "flakeExposed", span: Span { start: Position { line: 17, column: 3, }, end: Position { line: 17, column: 15, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "import", span: Span { start: Position { line: 17, column: 18, }, end: Position { line: 17, column: 24, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "./flake-systems.nix", span: Span { start: Position { line: 17, column: 25, }, end: Position { line: 17, column: 44, }, }, }, ), ], span: Span { start: Position { line: 17, column: 25, }, end: Position { line: 17, column: 44, }, }, }, ), Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 17, column: 45, }, end: Position { line: 17, column: 48, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "elaborate", span: Span { start: Position { line: 25, column: 3, }, end: Position { line: 25, column: 12, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "args'", }, ), body: LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "args", span: Span { start: Position { line: 26, column: 5, }, end: Position { line: 26, column: 9, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 26, column: 15, }, end: Position { line: 26, column: 18, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isString", span: Span { start: Position { line: 26, column: 19, }, end: Position { line: 26, column: 27, }, }, }, ), ], default: None, }, ), arguments: [ Identifier( Identifier { id: "args'", span: Span { start: Position { line: 26, column: 28, }, end: Position { line: 26, column: 33, }, }, }, ), ], }, ), then: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 26, column: 41, }, end: Position { line: 26, column: 47, }, }, }, ), ], to: Identifier( Identifier { id: "args'", span: Span { start: Position { line: 26, column: 50, }, end: Position { line: 26, column: 55, }, }, }, ), }, ), ], span: Span { start: Position { line: 26, column: 39, }, end: Position { line: 26, column: 58, }, }, }, ), else_: Identifier( Identifier { id: "args'", span: Span { start: Position { line: 27, column: 17, }, end: Position { line: 27, column: 22, }, }, }, ), span: Span { start: Position { line: 26, column: 12, }, end: Position { line: 27, column: 22, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "final", span: Span { start: Position { line: 28, column: 5, }, end: Position { line: 28, column: 10, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 30, column: 7, }, end: Position { line: 30, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "parse", span: Span { start: Position { line: 30, column: 16, }, end: Position { line: 30, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mkSystemFromString", span: Span { start: Position { line: 30, column: 22, }, end: Position { line: 30, column: 40, }, }, }, ), ], default: None, }, ), arguments: [ IfThenElse( IfThenElse { predicate: HasAttribute( HasAttribute { expression: Identifier( Identifier { id: "args", span: Span { start: Position { line: 30, column: 45, }, end: Position { line: 30, column: 49, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "config", span: Span { start: Position { line: 30, column: 52, }, end: Position { line: 30, column: 58, }, }, }, ), ], }, ), then: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "args", span: Span { start: Position { line: 30, column: 64, }, end: Position { line: 30, column: 68, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "config", span: Span { start: Position { line: 30, column: 69, }, end: Position { line: 30, column: 75, }, }, }, ), ], default: None, }, ), else_: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "args", span: Span { start: Position { line: 30, column: 81, }, end: Position { line: 30, column: 85, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 30, column: 86, }, end: Position { line: 30, column: 92, }, }, }, ), ], default: None, }, ), span: Span { start: Position { line: 30, column: 42, }, end: Position { line: 30, column: 92, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 32, column: 7, }, end: Position { line: 32, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "parse", span: Span { start: Position { line: 32, column: 16, }, end: Position { line: 32, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "doubleFromSystem", span: Span { start: Position { line: 32, column: 22, }, end: Position { line: 32, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 32, column: 39, }, end: Position { line: 32, column: 44, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 32, column: 45, }, end: Position { line: 32, column: 51, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "config", span: Span { start: Position { line: 33, column: 7, }, end: Position { line: 33, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "parse", span: Span { start: Position { line: 33, column: 16, }, end: Position { line: 33, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "tripleFromSystem", span: Span { start: Position { line: 33, column: 22, }, end: Position { line: 33, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 33, column: 39, }, end: Position { line: 33, column: 44, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 33, column: 45, }, end: Position { line: 33, column: 51, }, }, }, ), ], default: None, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "canExecute", span: Span { start: Position { line: 35, column: 7, }, end: Position { line: 35, column: 17, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "platform", }, ), body: BinaryOperation( BinaryOperation { left: BinaryOperation( BinaryOperation { left: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 36, column: 9, }, end: Position { line: 36, column: 14, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAndroid", span: Span { start: Position { line: 36, column: 15, }, end: Position { line: 36, column: 24, }, }, }, ), ], default: None, }, ), operator: EqualTo, right: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "platform", span: Span { start: Position { line: 36, column: 28, }, end: Position { line: 36, column: 36, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAndroid", span: Span { start: Position { line: 36, column: 37, }, end: Position { line: 36, column: 46, }, }, }, ), ], default: None, }, ), }, ), operator: LogicalAnd, right: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "parse", span: Span { start: Position { line: 37, column: 9, }, end: Position { line: 37, column: 14, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isCompatible", span: Span { start: Position { line: 37, column: 15, }, end: Position { line: 37, column: 27, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 37, column: 28, }, end: Position { line: 37, column: 33, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 37, column: 34, }, end: Position { line: 37, column: 40, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 37, column: 41, }, end: Position { line: 37, column: 44, }, }, }, ), ], default: None, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "platform", span: Span { start: Position { line: 37, column: 45, }, end: Position { line: 37, column: 53, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 37, column: 54, }, end: Position { line: 37, column: 60, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 37, column: 61, }, end: Position { line: 37, column: 64, }, }, }, ), ], default: None, }, ), ], }, ), }, ), operator: LogicalAnd, right: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 38, column: 12, }, end: Position { line: 38, column: 17, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 38, column: 18, }, end: Position { line: 38, column: 24, }, }, }, ), Raw( PartRaw { content: "kernel", span: Span { start: Position { line: 38, column: 25, }, end: Position { line: 38, column: 31, }, }, }, ), ], default: None, }, ), operator: EqualTo, right: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "platform", span: Span { start: Position { line: 38, column: 35, }, end: Position { line: 38, column: 43, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 38, column: 44, }, end: Position { line: 38, column: 50, }, }, }, ), Raw( PartRaw { content: "kernel", span: Span { start: Position { line: 38, column: 51, }, end: Position { line: 38, column: 57, }, }, }, ), ], default: None, }, ), }, ), }, ), span: Span { start: Position { line: 35, column: 20, }, end: Position { line: 38, column: 57, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "isCompatible", span: Span { start: Position { line: 39, column: 7, }, end: Position { line: 39, column: 19, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "_", }, ), body: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "throw", span: Span { start: Position { line: 39, column: 25, }, end: Position { line: 39, column: 30, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "2022-05-23: isCompatible has been removed in favor of canExecute, refer to the 22.11 changelog for details", span: Span { start: Position { line: 39, column: 32, }, end: Position { line: 39, column: 138, }, }, }, ), ], span: Span { start: Position { line: 39, column: 31, }, end: Position { line: 39, column: 139, }, }, }, ), ], }, ), span: Span { start: Position { line: 39, column: 22, }, end: Position { line: 39, column: 139, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "libc", span: Span { start: Position { line: 41, column: 7, }, end: Position { line: 41, column: 11, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 42, column: 17, }, end: Position { line: 42, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isDarwin", span: Span { start: Position { line: 42, column: 23, }, end: Position { line: 42, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "libSystem", span: Span { start: Position { line: 42, column: 51, }, end: Position { line: 42, column: 60, }, }, }, ), ], span: Span { start: Position { line: 42, column: 50, }, end: Position { line: 42, column: 61, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 43, column: 17, }, end: Position { line: 43, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isMinGW", span: Span { start: Position { line: 43, column: 23, }, end: Position { line: 43, column: 30, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "msvcrt", span: Span { start: Position { line: 43, column: 51, }, end: Position { line: 43, column: 57, }, }, }, ), ], span: Span { start: Position { line: 43, column: 50, }, end: Position { line: 43, column: 58, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 44, column: 17, }, end: Position { line: 44, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isWasi", span: Span { start: Position { line: 44, column: 23, }, end: Position { line: 44, column: 29, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "wasilibc", span: Span { start: Position { line: 44, column: 51, }, end: Position { line: 44, column: 59, }, }, }, ), ], span: Span { start: Position { line: 44, column: 50, }, end: Position { line: 44, column: 60, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 45, column: 17, }, end: Position { line: 45, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isRedox", span: Span { start: Position { line: 45, column: 23, }, end: Position { line: 45, column: 30, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "relibc", span: Span { start: Position { line: 45, column: 51, }, end: Position { line: 45, column: 57, }, }, }, ), ], span: Span { start: Position { line: 45, column: 50, }, end: Position { line: 45, column: 58, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 46, column: 17, }, end: Position { line: 46, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isMusl", span: Span { start: Position { line: 46, column: 23, }, end: Position { line: 46, column: 29, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "musl", span: Span { start: Position { line: 46, column: 51, }, end: Position { line: 46, column: 55, }, }, }, ), ], span: Span { start: Position { line: 46, column: 50, }, end: Position { line: 46, column: 56, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 47, column: 17, }, end: Position { line: 47, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isUClibc", span: Span { start: Position { line: 47, column: 23, }, end: Position { line: 47, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "uclibc", span: Span { start: Position { line: 47, column: 51, }, end: Position { line: 47, column: 57, }, }, }, ), ], span: Span { start: Position { line: 47, column: 50, }, end: Position { line: 47, column: 58, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 48, column: 17, }, end: Position { line: 48, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAndroid", span: Span { start: Position { line: 48, column: 23, }, end: Position { line: 48, column: 32, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "bionic", span: Span { start: Position { line: 48, column: 51, }, end: Position { line: 48, column: 57, }, }, }, ), ], span: Span { start: Position { line: 48, column: 50, }, end: Position { line: 48, column: 58, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 49, column: 17, }, end: Position { line: 49, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isLinux", span: Span { start: Position { line: 49, column: 23, }, end: Position { line: 49, column: 30, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "glibc", span: Span { start: Position { line: 49, column: 51, }, end: Position { line: 49, column: 56, }, }, }, ), ], span: Span { start: Position { line: 49, column: 50, }, end: Position { line: 49, column: 57, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 50, column: 17, }, end: Position { line: 50, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAvr", span: Span { start: Position { line: 50, column: 23, }, end: Position { line: 50, column: 28, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "avrlibc", span: Span { start: Position { line: 50, column: 51, }, end: Position { line: 50, column: 58, }, }, }, ), ], span: Span { start: Position { line: 50, column: 50, }, end: Position { line: 50, column: 59, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 51, column: 17, }, end: Position { line: 51, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isNone", span: Span { start: Position { line: 51, column: 23, }, end: Position { line: 51, column: 29, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "newlib", span: Span { start: Position { line: 51, column: 51, }, end: Position { line: 51, column: 57, }, }, }, ), ], span: Span { start: Position { line: 51, column: 50, }, end: Position { line: 51, column: 58, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 52, column: 17, }, end: Position { line: 52, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isNetBSD", span: Span { start: Position { line: 52, column: 23, }, end: Position { line: 52, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "nblibc", span: Span { start: Position { line: 52, column: 51, }, end: Position { line: 52, column: 57, }, }, }, ), ], span: Span { start: Position { line: 52, column: 50, }, end: Position { line: 52, column: 58, }, }, }, ), else_: String( String_ { parts: [ Raw( PartRaw { content: "native/impure", span: Span { start: Position { line: 54, column: 51, }, end: Position { line: 54, column: 64, }, }, }, ), ], span: Span { start: Position { line: 54, column: 50, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 52, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 51, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 50, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 49, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 48, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 47, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 46, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 45, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 44, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 43, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), span: Span { start: Position { line: 42, column: 14, }, end: Position { line: 54, column: 65, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "linker", span: Span { start: Position { line: 61, column: 7, }, end: Position { line: 61, column: 13, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 62, column: 17, }, end: Position { line: 62, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "useLLVM", span: Span { start: Position { line: 62, column: 23, }, end: Position { line: 62, column: 30, }, }, }, ), ], default: Some( Identifier( Identifier { id: "false", span: Span { start: Position { line: 62, column: 34, }, end: Position { line: 62, column: 39, }, }, }, ), ), }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "lld", span: Span { start: Position { line: 62, column: 51, }, end: Position { line: 62, column: 54, }, }, }, ), ], span: Span { start: Position { line: 62, column: 50, }, end: Position { line: 62, column: 55, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 63, column: 17, }, end: Position { line: 63, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isDarwin", span: Span { start: Position { line: 63, column: 23, }, end: Position { line: 63, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "cctools", span: Span { start: Position { line: 63, column: 51, }, end: Position { line: 63, column: 58, }, }, }, ), ], span: Span { start: Position { line: 63, column: 50, }, end: Position { line: 63, column: 59, }, }, }, ), else_: String( String_ { parts: [ Raw( PartRaw { content: "bfd", span: Span { start: Position { line: 67, column: 51, }, end: Position { line: 67, column: 54, }, }, }, ), ], span: Span { start: Position { line: 67, column: 50, }, end: Position { line: 67, column: 55, }, }, }, ), span: Span { start: Position { line: 63, column: 14, }, end: Position { line: 67, column: 55, }, }, }, ), span: Span { start: Position { line: 62, column: 14, }, end: Position { line: 67, column: 55, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "extensions", span: Span { start: Position { line: 68, column: 7, }, end: Position { line: 68, column: 17, }, }, }, ), ], to: Map( Map { recursive: true, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sharedLibrary", span: Span { start: Position { line: 69, column: 9, }, end: Position { line: 69, column: 22, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 70, column: 19, }, end: Position { line: 70, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isDarwin", span: Span { start: Position { line: 70, column: 25, }, end: Position { line: 70, column: 33, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: ".dylib", span: Span { start: Position { line: 70, column: 41, }, end: Position { line: 70, column: 47, }, }, }, ), ], span: Span { start: Position { line: 70, column: 40, }, end: Position { line: 70, column: 48, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 71, column: 19, }, end: Position { line: 71, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isWindows", span: Span { start: Position { line: 71, column: 25, }, end: Position { line: 71, column: 34, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: ".dll", span: Span { start: Position { line: 71, column: 41, }, end: Position { line: 71, column: 45, }, }, }, ), ], span: Span { start: Position { line: 71, column: 40, }, end: Position { line: 71, column: 46, }, }, }, ), else_: String( String_ { parts: [ Raw( PartRaw { content: ".so", span: Span { start: Position { line: 72, column: 41, }, end: Position { line: 72, column: 44, }, }, }, ), ], span: Span { start: Position { line: 72, column: 40, }, end: Position { line: 72, column: 45, }, }, }, ), span: Span { start: Position { line: 71, column: 16, }, end: Position { line: 72, column: 45, }, }, }, ), span: Span { start: Position { line: 70, column: 16, }, end: Position { line: 72, column: 45, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "staticLibrary", span: Span { start: Position { line: 73, column: 9, }, end: Position { line: 73, column: 22, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 74, column: 19, }, end: Position { line: 74, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isWindows", span: Span { start: Position { line: 74, column: 25, }, end: Position { line: 74, column: 34, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: ".lib", span: Span { start: Position { line: 74, column: 41, }, end: Position { line: 74, column: 45, }, }, }, ), ], span: Span { start: Position { line: 74, column: 40, }, end: Position { line: 74, column: 46, }, }, }, ), else_: String( String_ { parts: [ Raw( PartRaw { content: ".a", span: Span { start: Position { line: 75, column: 41, }, end: Position { line: 75, column: 43, }, }, }, ), ], span: Span { start: Position { line: 75, column: 40, }, end: Position { line: 75, column: 44, }, }, }, ), span: Span { start: Position { line: 74, column: 16, }, end: Position { line: 75, column: 44, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "library", span: Span { start: Position { line: 76, column: 9, }, end: Position { line: 76, column: 16, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 77, column: 19, }, end: Position { line: 77, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isStatic", span: Span { start: Position { line: 77, column: 25, }, end: Position { line: 77, column: 33, }, }, }, ), ], default: None, }, ), then: Identifier( Identifier { id: "staticLibrary", span: Span { start: Position { line: 77, column: 39, }, end: Position { line: 77, column: 52, }, }, }, ), else_: Identifier( Identifier { id: "sharedLibrary", span: Span { start: Position { line: 78, column: 39, }, end: Position { line: 78, column: 52, }, }, }, ), span: Span { start: Position { line: 77, column: 16, }, end: Position { line: 78, column: 52, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "executable", span: Span { start: Position { line: 79, column: 9, }, end: Position { line: 79, column: 19, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 80, column: 19, }, end: Position { line: 80, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isWindows", span: Span { start: Position { line: 80, column: 25, }, end: Position { line: 80, column: 34, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: ".exe", span: Span { start: Position { line: 80, column: 41, }, end: Position { line: 80, column: 45, }, }, }, ), ], span: Span { start: Position { line: 80, column: 40, }, end: Position { line: 80, column: 46, }, }, }, ), else_: String( String_ { parts: [], span: Span { start: Position { line: 81, column: 40, }, end: Position { line: 81, column: 42, }, }, }, ), span: Span { start: Position { line: 80, column: 16, }, end: Position { line: 81, column: 42, }, }, }, ), }, ), ], span: Span { start: Position { line: 68, column: 20, }, end: Position { line: 82, column: 8, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "useAndroidPrebuilt", span: Span { start: Position { line: 84, column: 7, }, end: Position { line: 84, column: 25, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 84, column: 28, }, end: Position { line: 84, column: 33, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "useiOSPrebuilt", span: Span { start: Position { line: 85, column: 7, }, end: Position { line: 85, column: 21, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 85, column: 24, }, end: Position { line: 85, column: 29, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "uname", span: Span { start: Position { line: 88, column: 7, }, end: Position { line: 88, column: 12, }, }, }, ), ], to: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "system", span: Span { start: Position { line: 90, column: 9, }, end: Position { line: 90, column: 15, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "linux", span: Span { start: Position { line: 91, column: 11, }, end: Position { line: 91, column: 16, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "Linux", span: Span { start: Position { line: 91, column: 20, }, end: Position { line: 91, column: 25, }, }, }, ), ], span: Span { start: Position { line: 91, column: 19, }, end: Position { line: 91, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "windows", span: Span { start: Position { line: 92, column: 11, }, end: Position { line: 92, column: 18, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "Windows", span: Span { start: Position { line: 92, column: 22, }, end: Position { line: 92, column: 29, }, }, }, ), ], span: Span { start: Position { line: 92, column: 21, }, end: Position { line: 92, column: 30, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "darwin", span: Span { start: Position { line: 93, column: 11, }, end: Position { line: 93, column: 17, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "Darwin", span: Span { start: Position { line: 93, column: 21, }, end: Position { line: 93, column: 27, }, }, }, ), ], span: Span { start: Position { line: 93, column: 20, }, end: Position { line: 93, column: 28, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "netbsd", span: Span { start: Position { line: 94, column: 11, }, end: Position { line: 94, column: 17, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "NetBSD", span: Span { start: Position { line: 94, column: 21, }, end: Position { line: 94, column: 27, }, }, }, ), ], span: Span { start: Position { line: 94, column: 20, }, end: Position { line: 94, column: 28, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "freebsd", span: Span { start: Position { line: 95, column: 11, }, end: Position { line: 95, column: 18, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "FreeBSD", span: Span { start: Position { line: 95, column: 22, }, end: Position { line: 95, column: 29, }, }, }, ), ], span: Span { start: Position { line: 95, column: 21, }, end: Position { line: 95, column: 30, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "openbsd", span: Span { start: Position { line: 96, column: 11, }, end: Position { line: 96, column: 18, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "OpenBSD", span: Span { start: Position { line: 96, column: 22, }, end: Position { line: 96, column: 29, }, }, }, ), ], span: Span { start: Position { line: 96, column: 21, }, end: Position { line: 96, column: 30, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "wasi", span: Span { start: Position { line: 97, column: 11, }, end: Position { line: 97, column: 15, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "Wasi", span: Span { start: Position { line: 97, column: 19, }, end: Position { line: 97, column: 23, }, }, }, ), ], span: Span { start: Position { line: 97, column: 18, }, end: Position { line: 97, column: 24, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "redox", span: Span { start: Position { line: 98, column: 11, }, end: Position { line: 98, column: 16, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "Redox", span: Span { start: Position { line: 98, column: 20, }, end: Position { line: 98, column: 25, }, }, }, ), ], span: Span { start: Position { line: 98, column: 19, }, end: Position { line: 98, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "genode", span: Span { start: Position { line: 99, column: 11, }, end: Position { line: 99, column: 17, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "Genode", span: Span { start: Position { line: 99, column: 21, }, end: Position { line: 99, column: 27, }, }, }, ), ], span: Span { start: Position { line: 99, column: 20, }, end: Position { line: 99, column: 28, }, }, }, ), }, ), ], span: Span { start: Position { line: 90, column: 18, }, end: Position { line: 100, column: 10, }, }, }, ), attribute_path: [ Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 100, column: 13, }, end: Position { line: 100, column: 18, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 100, column: 19, }, end: Position { line: 100, column: 25, }, }, }, ), Raw( PartRaw { content: "kernel", span: Span { start: Position { line: 100, column: 26, }, end: Position { line: 100, column: 32, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 100, column: 33, }, end: Position { line: 100, column: 37, }, }, }, ), ], default: None, }, ), }, ), ], default: Some( Identifier( Identifier { id: "null", span: Span { start: Position { line: 100, column: 42, }, end: Position { line: 100, column: 46, }, }, }, ), ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "processor", span: Span { start: Position { line: 103, column: 10, }, end: Position { line: 103, column: 19, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 103, column: 22, }, end: Position { line: 103, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 103, column: 28, }, end: Position { line: 103, column: 34, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 103, column: 35, }, end: Position { line: 103, column: 38, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 103, column: 39, }, end: Position { line: 103, column: 43, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "release", span: Span { start: Position { line: 106, column: 10, }, end: Position { line: 106, column: 17, }, }, }, ), ], to: Identifier( Identifier { id: "null", span: Span { start: Position { line: 106, column: 20, }, end: Position { line: 106, column: 24, }, }, }, ), }, ), ], span: Span { start: Position { line: 88, column: 15, }, end: Position { line: 107, column: 8, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "isStatic", span: Span { start: Position { line: 108, column: 7, }, end: Position { line: 108, column: 15, }, }, }, ), ], to: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 108, column: 18, }, end: Position { line: 108, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isWasm", span: Span { start: Position { line: 108, column: 24, }, end: Position { line: 108, column: 30, }, }, }, ), ], default: None, }, ), operator: LogicalOr, right: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 108, column: 34, }, end: Position { line: 108, column: 39, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isRedox", span: Span { start: Position { line: 108, column: 40, }, end: Position { line: 108, column: 47, }, }, }, ), ], default: None, }, ), }, ), }, ), Inherit( BindingInherit { from: Some( BinaryOperation( BinaryOperation { left: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "linux-kernel", span: Span { start: Position { line: 113, column: 11, }, end: Position { line: 113, column: 23, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "args", span: Span { start: Position { line: 113, column: 26, }, end: Position { line: 113, column: 30, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "linux-kernel", span: Span { start: Position { line: 113, column: 31, }, end: Position { line: 113, column: 43, }, }, }, ), ], default: Some( Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 113, column: 47, }, end: Position { line: 113, column: 49, }, }, }, ), ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "gcc", span: Span { start: Position { line: 114, column: 11, }, end: Position { line: 114, column: 14, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "args", span: Span { start: Position { line: 114, column: 17, }, end: Position { line: 114, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "gcc", span: Span { start: Position { line: 114, column: 22, }, end: Position { line: 114, column: 25, }, }, }, ), ], default: Some( Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 114, column: 29, }, end: Position { line: 114, column: 31, }, }, }, ), ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "rustc", span: Span { start: Position { line: 115, column: 11, }, end: Position { line: 115, column: 16, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "args", span: Span { start: Position { line: 115, column: 19, }, end: Position { line: 115, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "rust", span: Span { start: Position { line: 115, column: 24, }, end: Position { line: 115, column: 28, }, }, }, ), ], default: Some( Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 115, column: 32, }, end: Position { line: 115, column: 34, }, }, }, ), ), }, ), }, ), ], span: Span { start: Position { line: 112, column: 10, }, end: Position { line: 116, column: 10, }, }, }, ), operator: Update, right: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "platforms", span: Span { start: Position { line: 116, column: 14, }, end: Position { line: 116, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "select", span: Span { start: Position { line: 116, column: 24, }, end: Position { line: 116, column: 30, }, }, }, ), ], default: None, }, ), arguments: [ Identifier( Identifier { id: "final", span: Span { start: Position { line: 116, column: 31, }, end: Position { line: 116, column: 36, }, }, }, ), ], }, ), }, ), ), attributes: [ Raw( PartRaw { content: "linux-kernel", span: Span { start: Position { line: 117, column: 9, }, end: Position { line: 117, column: 21, }, }, }, ), Raw( PartRaw { content: "gcc", span: Span { start: Position { line: 117, column: 22, }, end: Position { line: 117, column: 25, }, }, }, ), Raw( PartRaw { content: "rustc", span: Span { start: Position { line: 117, column: 26, }, end: Position { line: 117, column: 31, }, }, }, ), ], span: Span { start: Position { line: 28, column: 14, }, end: Position { line: 117, column: 32, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "linuxArch", span: Span { start: Position { line: 119, column: 7, }, end: Position { line: 119, column: 16, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 120, column: 12, }, end: Position { line: 120, column: 17, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAarch32", span: Span { start: Position { line: 120, column: 18, }, end: Position { line: 120, column: 27, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "arm", span: Span { start: Position { line: 120, column: 34, }, end: Position { line: 120, column: 37, }, }, }, ), ], span: Span { start: Position { line: 120, column: 33, }, end: Position { line: 120, column: 38, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 121, column: 17, }, end: Position { line: 121, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAarch64", span: Span { start: Position { line: 121, column: 23, }, end: Position { line: 121, column: 32, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "arm64", span: Span { start: Position { line: 121, column: 39, }, end: Position { line: 121, column: 44, }, }, }, ), ], span: Span { start: Position { line: 121, column: 38, }, end: Position { line: 121, column: 45, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 122, column: 17, }, end: Position { line: 122, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isx86_32", span: Span { start: Position { line: 122, column: 23, }, end: Position { line: 122, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "i386", span: Span { start: Position { line: 122, column: 38, }, end: Position { line: 122, column: 42, }, }, }, ), ], span: Span { start: Position { line: 122, column: 37, }, end: Position { line: 122, column: 43, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 123, column: 17, }, end: Position { line: 123, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isx86_64", span: Span { start: Position { line: 123, column: 23, }, end: Position { line: 123, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "x86_64", span: Span { start: Position { line: 123, column: 38, }, end: Position { line: 123, column: 44, }, }, }, ), ], span: Span { start: Position { line: 123, column: 37, }, end: Position { line: 123, column: 45, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 125, column: 17, }, end: Position { line: 125, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isMicroBlaze", span: Span { start: Position { line: 125, column: 23, }, end: Position { line: 125, column: 35, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "microblaze", span: Span { start: Position { line: 125, column: 42, }, end: Position { line: 125, column: 52, }, }, }, ), ], span: Span { start: Position { line: 125, column: 41, }, end: Position { line: 125, column: 53, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 126, column: 17, }, end: Position { line: 126, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isMips32", span: Span { start: Position { line: 126, column: 23, }, end: Position { line: 126, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "mips", span: Span { start: Position { line: 126, column: 38, }, end: Position { line: 126, column: 42, }, }, }, ), ], span: Span { start: Position { line: 126, column: 37, }, end: Position { line: 126, column: 43, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 127, column: 17, }, end: Position { line: 127, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isMips64", span: Span { start: Position { line: 127, column: 23, }, end: Position { line: 127, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "mips", span: Span { start: Position { line: 127, column: 38, }, end: Position { line: 127, column: 42, }, }, }, ), ], span: Span { start: Position { line: 127, column: 37, }, end: Position { line: 127, column: 43, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 128, column: 17, }, end: Position { line: 128, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isPower", span: Span { start: Position { line: 128, column: 23, }, end: Position { line: 128, column: 30, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "powerpc", span: Span { start: Position { line: 128, column: 37, }, end: Position { line: 128, column: 44, }, }, }, ), ], span: Span { start: Position { line: 128, column: 36, }, end: Position { line: 128, column: 45, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 129, column: 17, }, end: Position { line: 129, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isRiscV", span: Span { start: Position { line: 129, column: 23, }, end: Position { line: 129, column: 30, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "riscv", span: Span { start: Position { line: 129, column: 37, }, end: Position { line: 129, column: 42, }, }, }, ), ], span: Span { start: Position { line: 129, column: 36, }, end: Position { line: 129, column: 43, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 130, column: 17, }, end: Position { line: 130, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isS390", span: Span { start: Position { line: 130, column: 23, }, end: Position { line: 130, column: 29, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "s390", span: Span { start: Position { line: 130, column: 36, }, end: Position { line: 130, column: 40, }, }, }, ), ], span: Span { start: Position { line: 130, column: 35, }, end: Position { line: 130, column: 41, }, }, }, ), else_: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 131, column: 14, }, end: Position { line: 131, column: 19, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 131, column: 20, }, end: Position { line: 131, column: 26, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 131, column: 27, }, end: Position { line: 131, column: 30, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 131, column: 31, }, end: Position { line: 131, column: 35, }, }, }, ), ], default: None, }, ), span: Span { start: Position { line: 130, column: 14, }, end: Position { line: 131, column: 35, }, }, }, ), span: Span { start: Position { line: 129, column: 14, }, end: Position { line: 131, column: 35, }, }, }, ), span: Span { start: Position { line: 128, column: 14, }, end: Position { line: 131, column: 35, }, }, }, ), span: Span { start: Position { line: 127, column: 14, }, end: Position { line: 131, column: 35, }, }, }, ), span: Span { start: Position { line: 126, column: 14, }, end: Position { line: 131, column: 35, }, }, }, ), span: Span { start: Position { line: 125, column: 14, }, end: Position { line: 131, column: 35, }, }, }, ), span: Span { start: Position { line: 123, column: 14, }, end: Position { line: 131, column: 35, }, }, }, ), span: Span { start: Position { line: 122, column: 14, }, end: Position { line: 131, column: 35, }, }, }, ), span: Span { start: Position { line: 121, column: 14, }, end: Position { line: 131, column: 35, }, }, }, ), span: Span { start: Position { line: 120, column: 9, }, end: Position { line: 131, column: 35, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "qemuArch", span: Span { start: Position { line: 133, column: 7, }, end: Position { line: 133, column: 15, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 134, column: 12, }, end: Position { line: 134, column: 17, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAarch32", span: Span { start: Position { line: 134, column: 18, }, end: Position { line: 134, column: 27, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "arm", span: Span { start: Position { line: 134, column: 34, }, end: Position { line: 134, column: 37, }, }, }, ), ], span: Span { start: Position { line: 134, column: 33, }, end: Position { line: 134, column: 38, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 135, column: 17, }, end: Position { line: 135, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isx86_64", span: Span { start: Position { line: 135, column: 23, }, end: Position { line: 135, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "x86_64", span: Span { start: Position { line: 135, column: 38, }, end: Position { line: 135, column: 44, }, }, }, ), ], span: Span { start: Position { line: 135, column: 37, }, end: Position { line: 135, column: 45, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 136, column: 17, }, end: Position { line: 136, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isx86", span: Span { start: Position { line: 136, column: 23, }, end: Position { line: 136, column: 28, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "i386", span: Span { start: Position { line: 136, column: 35, }, end: Position { line: 136, column: 39, }, }, }, ), ], span: Span { start: Position { line: 136, column: 34, }, end: Position { line: 136, column: 40, }, }, }, ), else_: PropertyAccess( PropertyAccess { expression: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "powerpc", span: Span { start: Position { line: 138, column: 11, }, end: Position { line: 138, column: 18, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "ppc", span: Span { start: Position { line: 138, column: 22, }, end: Position { line: 138, column: 25, }, }, }, ), ], span: Span { start: Position { line: 138, column: 21, }, end: Position { line: 138, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "powerpcle", span: Span { start: Position { line: 139, column: 11, }, end: Position { line: 139, column: 20, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "ppc", span: Span { start: Position { line: 139, column: 24, }, end: Position { line: 139, column: 27, }, }, }, ), ], span: Span { start: Position { line: 139, column: 23, }, end: Position { line: 139, column: 28, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "powerpc64", span: Span { start: Position { line: 140, column: 11, }, end: Position { line: 140, column: 20, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "ppc64", span: Span { start: Position { line: 140, column: 24, }, end: Position { line: 140, column: 29, }, }, }, ), ], span: Span { start: Position { line: 140, column: 23, }, end: Position { line: 140, column: 30, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "powerpc64le", span: Span { start: Position { line: 141, column: 11, }, end: Position { line: 141, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "ppc64le", span: Span { start: Position { line: 141, column: 26, }, end: Position { line: 141, column: 33, }, }, }, ), ], span: Span { start: Position { line: 141, column: 25, }, end: Position { line: 141, column: 34, }, }, }, ), }, ), ], span: Span { start: Position { line: 137, column: 14, }, end: Position { line: 142, column: 10, }, }, }, ), attribute_path: [ Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 142, column: 13, }, end: Position { line: 142, column: 18, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 142, column: 19, }, end: Position { line: 142, column: 25, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 142, column: 26, }, end: Position { line: 142, column: 29, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 142, column: 30, }, end: Position { line: 142, column: 34, }, }, }, ), ], default: None, }, ), }, ), ], default: Some( PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 142, column: 39, }, end: Position { line: 142, column: 44, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 142, column: 45, }, end: Position { line: 142, column: 51, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 142, column: 52, }, end: Position { line: 142, column: 55, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 142, column: 56, }, end: Position { line: 142, column: 60, }, }, }, ), ], default: None, }, ), ), }, ), span: Span { start: Position { line: 136, column: 14, }, end: Position { line: 142, column: 60, }, }, }, ), span: Span { start: Position { line: 135, column: 14, }, end: Position { line: 142, column: 60, }, }, }, ), span: Span { start: Position { line: 134, column: 9, }, end: Position { line: 142, column: 60, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "efiArch", span: Span { start: Position { line: 145, column: 7, }, end: Position { line: 145, column: 14, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 146, column: 12, }, end: Position { line: 146, column: 17, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isx86_32", span: Span { start: Position { line: 146, column: 18, }, end: Position { line: 146, column: 26, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "ia32", span: Span { start: Position { line: 146, column: 33, }, end: Position { line: 146, column: 37, }, }, }, ), ], span: Span { start: Position { line: 146, column: 32, }, end: Position { line: 146, column: 38, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 147, column: 17, }, end: Position { line: 147, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isx86_64", span: Span { start: Position { line: 147, column: 23, }, end: Position { line: 147, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "x64", span: Span { start: Position { line: 147, column: 38, }, end: Position { line: 147, column: 41, }, }, }, ), ], span: Span { start: Position { line: 147, column: 37, }, end: Position { line: 147, column: 42, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 148, column: 17, }, end: Position { line: 148, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAarch32", span: Span { start: Position { line: 148, column: 23, }, end: Position { line: 148, column: 32, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "arm", span: Span { start: Position { line: 148, column: 39, }, end: Position { line: 148, column: 42, }, }, }, ), ], span: Span { start: Position { line: 148, column: 38, }, end: Position { line: 148, column: 43, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 149, column: 17, }, end: Position { line: 149, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAarch64", span: Span { start: Position { line: 149, column: 23, }, end: Position { line: 149, column: 32, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "aa64", span: Span { start: Position { line: 149, column: 39, }, end: Position { line: 149, column: 43, }, }, }, ), ], span: Span { start: Position { line: 149, column: 38, }, end: Position { line: 149, column: 44, }, }, }, ), else_: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 150, column: 14, }, end: Position { line: 150, column: 19, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 150, column: 20, }, end: Position { line: 150, column: 26, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 150, column: 27, }, end: Position { line: 150, column: 30, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 150, column: 31, }, end: Position { line: 150, column: 35, }, }, }, ), ], default: None, }, ), span: Span { start: Position { line: 149, column: 14, }, end: Position { line: 150, column: 35, }, }, }, ), span: Span { start: Position { line: 148, column: 14, }, end: Position { line: 150, column: 35, }, }, }, ), span: Span { start: Position { line: 147, column: 14, }, end: Position { line: 150, column: 35, }, }, }, ), span: Span { start: Position { line: 146, column: 9, }, end: Position { line: 150, column: 35, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "darwinArch", span: Span { start: Position { line: 152, column: 7, }, end: Position { line: 152, column: 17, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "armv7a", span: Span { start: Position { line: 153, column: 9, }, end: Position { line: 153, column: 15, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "armv7", span: Span { start: Position { line: 153, column: 20, }, end: Position { line: 153, column: 25, }, }, }, ), ], span: Span { start: Position { line: 153, column: 19, }, end: Position { line: 153, column: 26, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "aarch64", span: Span { start: Position { line: 154, column: 9, }, end: Position { line: 154, column: 16, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "arm64", span: Span { start: Position { line: 154, column: 20, }, end: Position { line: 154, column: 25, }, }, }, ), ], span: Span { start: Position { line: 154, column: 19, }, end: Position { line: 154, column: 26, }, }, }, ), }, ), ], span: Span { start: Position { line: 152, column: 20, }, end: Position { line: 155, column: 8, }, }, }, ), attribute_path: [ Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 155, column: 11, }, end: Position { line: 155, column: 16, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 155, column: 17, }, end: Position { line: 155, column: 23, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 155, column: 24, }, end: Position { line: 155, column: 27, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 155, column: 28, }, end: Position { line: 155, column: 32, }, }, }, ), ], default: None, }, ), }, ), ], default: Some( PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 155, column: 37, }, end: Position { line: 155, column: 42, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 155, column: 43, }, end: Position { line: 155, column: 49, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 155, column: 50, }, end: Position { line: 155, column: 53, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 155, column: 54, }, end: Position { line: 155, column: 58, }, }, }, ), ], default: None, }, ), ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "darwinPlatform", span: Span { start: Position { line: 157, column: 7, }, end: Position { line: 157, column: 21, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 158, column: 12, }, end: Position { line: 158, column: 17, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isMacOS", span: Span { start: Position { line: 158, column: 18, }, end: Position { line: 158, column: 25, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "macos", span: Span { start: Position { line: 158, column: 32, }, end: Position { line: 158, column: 37, }, }, }, ), ], span: Span { start: Position { line: 158, column: 31, }, end: Position { line: 158, column: 38, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 159, column: 17, }, end: Position { line: 159, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isiOS", span: Span { start: Position { line: 159, column: 23, }, end: Position { line: 159, column: 28, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "ios", span: Span { start: Position { line: 159, column: 35, }, end: Position { line: 159, column: 38, }, }, }, ), ], span: Span { start: Position { line: 159, column: 34, }, end: Position { line: 159, column: 39, }, }, }, ), else_: Identifier( Identifier { id: "null", span: Span { start: Position { line: 160, column: 14, }, end: Position { line: 160, column: 18, }, }, }, ), span: Span { start: Position { line: 159, column: 14, }, end: Position { line: 160, column: 18, }, }, }, ), span: Span { start: Position { line: 158, column: 9, }, end: Position { line: 160, column: 18, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "darwinSdkVersion", span: Span { start: Position { line: 163, column: 7, }, end: Position { line: 163, column: 23, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 163, column: 26, }, end: Position { line: 163, column: 31, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "sdkVer", span: Span { start: Position { line: 163, column: 32, }, end: Position { line: 163, column: 38, }, }, }, ), ], default: Some( IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 163, column: 46, }, end: Position { line: 163, column: 51, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAarch64", span: Span { start: Position { line: 163, column: 52, }, end: Position { line: 163, column: 61, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "11.0", span: Span { start: Position { line: 163, column: 68, }, end: Position { line: 163, column: 72, }, }, }, ), ], span: Span { start: Position { line: 163, column: 67, }, end: Position { line: 163, column: 73, }, }, }, ), else_: String( String_ { parts: [ Raw( PartRaw { content: "10.12", span: Span { start: Position { line: 163, column: 80, }, end: Position { line: 163, column: 85, }, }, }, ), ], span: Span { start: Position { line: 163, column: 79, }, end: Position { line: 163, column: 86, }, }, }, ), span: Span { start: Position { line: 163, column: 43, }, end: Position { line: 163, column: 86, }, }, }, ), ), }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "darwinMinVersion", span: Span { start: Position { line: 164, column: 7, }, end: Position { line: 164, column: 23, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 164, column: 26, }, end: Position { line: 164, column: 31, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "darwinSdkVersion", span: Span { start: Position { line: 164, column: 32, }, end: Position { line: 164, column: 48, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "darwinMinVersionVariable", span: Span { start: Position { line: 165, column: 7, }, end: Position { line: 165, column: 31, }, }, }, ), ], to: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 166, column: 12, }, end: Position { line: 166, column: 17, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isMacOS", span: Span { start: Position { line: 166, column: 18, }, end: Position { line: 166, column: 25, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "MACOSX_DEPLOYMENT_TARGET", span: Span { start: Position { line: 166, column: 32, }, end: Position { line: 166, column: 56, }, }, }, ), ], span: Span { start: Position { line: 166, column: 31, }, end: Position { line: 166, column: 57, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 167, column: 17, }, end: Position { line: 167, column: 22, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isiOS", span: Span { start: Position { line: 167, column: 23, }, end: Position { line: 167, column: 28, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Raw( PartRaw { content: "IPHONEOS_DEPLOYMENT_TARGET", span: Span { start: Position { line: 167, column: 35, }, end: Position { line: 167, column: 61, }, }, }, ), ], span: Span { start: Position { line: 167, column: 34, }, end: Position { line: 167, column: 62, }, }, }, ), else_: Identifier( Identifier { id: "null", span: Span { start: Position { line: 168, column: 14, }, end: Position { line: 168, column: 18, }, }, }, ), span: Span { start: Position { line: 167, column: 14, }, end: Position { line: 168, column: 18, }, }, }, ), span: Span { start: Position { line: 166, column: 9, }, end: Position { line: 168, column: 18, }, }, }, ), }, ), ], span: Span { start: Position { line: 28, column: 13, }, end: Position { line: 169, column: 6, }, }, }, ), operator: Update, right: BinaryOperation( BinaryOperation { left: LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "selectEmulator", span: Span { start: Position { line: 171, column: 9, }, end: Position { line: 171, column: 23, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "pkgs", }, ), body: LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "qemu-user", span: Span { start: Position { line: 173, column: 13, }, end: Position { line: 173, column: 22, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 173, column: 25, }, end: Position { line: 173, column: 29, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "qemu", span: Span { start: Position { line: 173, column: 30, }, end: Position { line: 173, column: 34, }, }, }, ), Raw( PartRaw { content: "override", span: Span { start: Position { line: 173, column: 35, }, end: Position { line: 173, column: 43, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "smartcardSupport", span: Span { start: Position { line: 174, column: 15, }, end: Position { line: 174, column: 31, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 174, column: 34, }, end: Position { line: 174, column: 39, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "spiceSupport", span: Span { start: Position { line: 175, column: 15, }, end: Position { line: 175, column: 27, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 175, column: 30, }, end: Position { line: 175, column: 35, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "openGLSupport", span: Span { start: Position { line: 176, column: 15, }, end: Position { line: 176, column: 28, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 176, column: 31, }, end: Position { line: 176, column: 36, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "virglSupport", span: Span { start: Position { line: 177, column: 15, }, end: Position { line: 177, column: 27, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 177, column: 30, }, end: Position { line: 177, column: 35, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "vncSupport", span: Span { start: Position { line: 178, column: 15, }, end: Position { line: 178, column: 25, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 178, column: 28, }, end: Position { line: 178, column: 33, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "gtkSupport", span: Span { start: Position { line: 179, column: 15, }, end: Position { line: 179, column: 25, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 179, column: 28, }, end: Position { line: 179, column: 33, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sdlSupport", span: Span { start: Position { line: 180, column: 15, }, end: Position { line: 180, column: 25, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 180, column: 28, }, end: Position { line: 180, column: 33, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "pulseSupport", span: Span { start: Position { line: 181, column: 15, }, end: Position { line: 181, column: 27, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 181, column: 30, }, end: Position { line: 181, column: 35, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "smbdSupport", span: Span { start: Position { line: 182, column: 15, }, end: Position { line: 182, column: 26, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 182, column: 29, }, end: Position { line: 182, column: 34, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "seccompSupport", span: Span { start: Position { line: 183, column: 15, }, end: Position { line: 183, column: 29, }, }, }, ), ], to: Identifier( Identifier { id: "false", span: Span { start: Position { line: 183, column: 32, }, end: Position { line: 183, column: 37, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "hostCpuTargets", span: Span { start: Position { line: 184, column: 15, }, end: Position { line: 184, column: 29, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 184, column: 37, }, end: Position { line: 184, column: 42, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "qemuArch", span: Span { start: Position { line: 184, column: 43, }, end: Position { line: 184, column: 51, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: "-linux-user", span: Span { start: Position { line: 184, column: 35, }, end: Position { line: 184, column: 63, }, }, }, ), ], span: Span { start: Position { line: 184, column: 34, }, end: Position { line: 184, column: 64, }, }, }, ), ], span: Span { start: Position { line: 184, column: 32, }, end: Position { line: 184, column: 66, }, }, }, ), }, ), ], span: Span { start: Position { line: 173, column: 44, }, end: Position { line: 185, column: 14, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "wine-name", span: Span { start: Position { line: 186, column: 13, }, end: Position { line: 186, column: 22, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "wine", span: Span { start: Position { line: 186, column: 26, }, end: Position { line: 186, column: 63, }, }, }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 186, column: 32, }, end: Position { line: 186, column: 40, }, }, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 186, column: 41, }, end: Position { line: 186, column: 46, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 186, column: 47, }, end: Position { line: 186, column: 53, }, }, }, ), Raw( PartRaw { content: "cpu", span: Span { start: Position { line: 186, column: 54, }, end: Position { line: 186, column: 57, }, }, }, ), Raw( PartRaw { content: "bits", span: Span { start: Position { line: 186, column: 58, }, end: Position { line: 186, column: 62, }, }, }, ), ], default: None, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 186, column: 25, }, end: Position { line: 186, column: 64, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "wine", span: Span { start: Position { line: 187, column: 13, }, end: Position { line: 187, column: 17, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 187, column: 21, }, end: Position { line: 187, column: 25, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "winePackagesFor", span: Span { start: Position { line: 187, column: 26, }, end: Position { line: 187, column: 41, }, }, }, ), ], default: None, }, ), arguments: [ Identifier( Identifier { id: "wine-name", span: Span { start: Position { line: 187, column: 42, }, end: Position { line: 187, column: 51, }, }, }, ), ], }, ), attribute_path: [ Raw( PartRaw { content: "minimal", span: Span { start: Position { line: 187, column: 53, }, end: Position { line: 187, column: 60, }, }, }, ), ], default: None, }, ), }, ), ], target: IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 189, column: 14, }, end: Position { line: 189, column: 19, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 189, column: 20, }, end: Position { line: 189, column: 26, }, }, }, ), Raw( PartRaw { content: "kernel", span: Span { start: Position { line: 189, column: 27, }, end: Position { line: 189, column: 33, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 189, column: 34, }, end: Position { line: 189, column: 38, }, }, }, ), ], default: None, }, ), operator: EqualTo, right: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 189, column: 42, }, end: Position { line: 189, column: 46, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "stdenv", span: Span { start: Position { line: 189, column: 47, }, end: Position { line: 189, column: 53, }, }, }, ), Raw( PartRaw { content: "hostPlatform", span: Span { start: Position { line: 189, column: 54, }, end: Position { line: 189, column: 66, }, }, }, ), Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 189, column: 67, }, end: Position { line: 189, column: 73, }, }, }, ), Raw( PartRaw { content: "kernel", span: Span { start: Position { line: 189, column: 74, }, end: Position { line: 189, column: 80, }, }, }, ), Raw( PartRaw { content: "name", span: Span { start: Position { line: 189, column: 81, }, end: Position { line: 189, column: 85, }, }, }, ), ], default: None, }, ), }, ), operator: LogicalAnd, right: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 190, column: 13, }, end: Position { line: 190, column: 17, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "stdenv", span: Span { start: Position { line: 190, column: 18, }, end: Position { line: 190, column: 24, }, }, }, ), Raw( PartRaw { content: "hostPlatform", span: Span { start: Position { line: 190, column: 25, }, end: Position { line: 190, column: 37, }, }, }, ), Raw( PartRaw { content: "canExecute", span: Span { start: Position { line: 190, column: 38, }, end: Position { line: 190, column: 48, }, }, }, ), ], default: None, }, ), arguments: [ Identifier( Identifier { id: "final", span: Span { start: Position { line: 190, column: 49, }, end: Position { line: 190, column: 54, }, }, }, ), ], }, ), }, ), then: String( String_ { parts: [ Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 191, column: 19, }, end: Position { line: 191, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "runtimeShell", span: Span { start: Position { line: 191, column: 24, }, end: Position { line: 191, column: 36, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: " -c '\"$@\"' --", span: Span { start: Position { line: 191, column: 17, }, end: Position { line: 191, column: 52, }, }, }, ), ], span: Span { start: Position { line: 191, column: 16, }, end: Position { line: 191, column: 53, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 192, column: 19, }, end: Position { line: 192, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isWindows", span: Span { start: Position { line: 192, column: 25, }, end: Position { line: 192, column: 34, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "wine", span: Span { start: Position { line: 193, column: 19, }, end: Position { line: 193, column: 23, }, }, }, ), }, ), Raw( PartRaw { content: "/bin/", span: Span { start: Position { line: 193, column: 17, }, end: Position { line: 193, column: 29, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "wine-name", span: Span { start: Position { line: 193, column: 31, }, end: Position { line: 193, column: 40, }, }, }, ), }, ), ], span: Span { start: Position { line: 193, column: 16, }, end: Position { line: 193, column: 42, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 194, column: 19, }, end: Position { line: 194, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isLinux", span: Span { start: Position { line: 194, column: 25, }, end: Position { line: 194, column: 32, }, }, }, ), ], default: None, }, ), operator: LogicalAnd, right: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 194, column: 36, }, end: Position { line: 194, column: 40, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "stdenv", span: Span { start: Position { line: 194, column: 41, }, end: Position { line: 194, column: 47, }, }, }, ), Raw( PartRaw { content: "hostPlatform", span: Span { start: Position { line: 194, column: 48, }, end: Position { line: 194, column: 60, }, }, }, ), Raw( PartRaw { content: "isLinux", span: Span { start: Position { line: 194, column: 61, }, end: Position { line: 194, column: 68, }, }, }, ), ], default: None, }, ), }, ), then: String( String_ { parts: [ Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "qemu-user", span: Span { start: Position { line: 195, column: 19, }, end: Position { line: 195, column: 28, }, }, }, ), }, ), Raw( PartRaw { content: "/bin/qemu-", span: Span { start: Position { line: 195, column: 17, }, end: Position { line: 195, column: 39, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 195, column: 41, }, end: Position { line: 195, column: 46, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "qemuArch", span: Span { start: Position { line: 195, column: 47, }, end: Position { line: 195, column: 55, }, }, }, ), ], default: None, }, ), }, ), ], span: Span { start: Position { line: 195, column: 16, }, end: Position { line: 195, column: 57, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 196, column: 19, }, end: Position { line: 196, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isWasi", span: Span { start: Position { line: 196, column: 25, }, end: Position { line: 196, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 197, column: 19, }, end: Position { line: 197, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "wasmtime", span: Span { start: Position { line: 197, column: 24, }, end: Position { line: 197, column: 32, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: "/bin/wasmtime", span: Span { start: Position { line: 197, column: 17, }, end: Position { line: 197, column: 46, }, }, }, ), ], span: Span { start: Position { line: 197, column: 16, }, end: Position { line: 197, column: 47, }, }, }, ), else_: IfThenElse( IfThenElse { predicate: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 198, column: 19, }, end: Position { line: 198, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isMmix", span: Span { start: Position { line: 198, column: 25, }, end: Position { line: 198, column: 31, }, }, }, ), ], default: None, }, ), then: String( String_ { parts: [ Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 199, column: 19, }, end: Position { line: 199, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mmixware", span: Span { start: Position { line: 199, column: 24, }, end: Position { line: 199, column: 32, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: "/bin/mmix", span: Span { start: Position { line: 199, column: 17, }, end: Position { line: 199, column: 42, }, }, }, ), ], span: Span { start: Position { line: 199, column: 16, }, end: Position { line: 199, column: 43, }, }, }, ), else_: Identifier( Identifier { id: "null", span: Span { start: Position { line: 200, column: 16, }, end: Position { line: 200, column: 20, }, }, }, ), span: Span { start: Position { line: 198, column: 16, }, end: Position { line: 200, column: 20, }, }, }, ), span: Span { start: Position { line: 196, column: 16, }, end: Position { line: 200, column: 20, }, }, }, ), span: Span { start: Position { line: 194, column: 16, }, end: Position { line: 200, column: 20, }, }, }, ), span: Span { start: Position { line: 192, column: 16, }, end: Position { line: 200, column: 20, }, }, }, ), span: Span { start: Position { line: 189, column: 11, }, end: Position { line: 200, column: 20, }, }, }, ), span: Span { start: Position { line: 172, column: 11, }, end: Position { line: 200, column: 20, }, }, }, ), span: Span { start: Position { line: 171, column: 26, }, end: Position { line: 200, column: 20, }, }, }, ), }, ), ], target: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "emulatorAvailable", span: Span { start: Position { line: 202, column: 9, }, end: Position { line: 202, column: 26, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "pkgs", }, ), body: BinaryOperation( BinaryOperation { left: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "selectEmulator", span: Span { start: Position { line: 202, column: 36, }, end: Position { line: 202, column: 50, }, }, }, ), arguments: [ Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 202, column: 51, }, end: Position { line: 202, column: 55, }, }, }, ), ], }, ), operator: NotEqualTo, right: Identifier( Identifier { id: "null", span: Span { start: Position { line: 202, column: 60, }, end: Position { line: 202, column: 64, }, }, }, ), }, ), span: Span { start: Position { line: 202, column: 29, }, end: Position { line: 202, column: 64, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "emulator", span: Span { start: Position { line: 204, column: 9, }, end: Position { line: 204, column: 17, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "pkgs", }, ), body: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 205, column: 15, }, end: Position { line: 205, column: 20, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "emulatorAvailable", span: Span { start: Position { line: 205, column: 21, }, end: Position { line: 205, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 205, column: 39, }, end: Position { line: 205, column: 43, }, }, }, ), ], }, ), then: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "selectEmulator", span: Span { start: Position { line: 206, column: 16, }, end: Position { line: 206, column: 30, }, }, }, ), arguments: [ Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 206, column: 31, }, end: Position { line: 206, column: 35, }, }, }, ), ], }, ), else_: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "throw", span: Span { start: Position { line: 207, column: 16, }, end: Position { line: 207, column: 21, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "Don't know how to run ", span: Span { start: Position { line: 207, column: 23, }, end: Position { line: 207, column: 60, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 207, column: 47, }, end: Position { line: 207, column: 52, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "config", span: Span { start: Position { line: 207, column: 53, }, end: Position { line: 207, column: 59, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: " executables.", span: Span { start: Position { line: 207, column: 23, }, end: Position { line: 207, column: 73, }, }, }, ), ], span: Span { start: Position { line: 207, column: 22, }, end: Position { line: 207, column: 74, }, }, }, ), ], }, ), span: Span { start: Position { line: 205, column: 11, }, end: Position { line: 207, column: 74, }, }, }, ), span: Span { start: Position { line: 204, column: 20, }, end: Position { line: 207, column: 74, }, }, }, ), }, ), ], span: Span { start: Position { line: 201, column: 10, }, end: Position { line: 209, column: 6, }, }, }, ), span: Span { start: Position { line: 170, column: 7, }, end: Position { line: 209, column: 6, }, }, }, ), operator: Update, right: BinaryOperation( BinaryOperation { left: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mapAttrs", span: Span { start: Position { line: 209, column: 11, }, end: Position { line: 209, column: 19, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "n", }, ), body: Function( Function { head: Simple( FunctionHeadSimple { identifier: "v", }, ), body: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "v", span: Span { start: Position { line: 209, column: 27, }, end: Position { line: 209, column: 28, }, }, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 209, column: 29, }, end: Position { line: 209, column: 34, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 209, column: 35, }, end: Position { line: 209, column: 41, }, }, }, ), ], default: None, }, ), ], }, ), span: Span { start: Position { line: 209, column: 24, }, end: Position { line: 209, column: 41, }, }, }, ), span: Span { start: Position { line: 209, column: 21, }, end: Position { line: 209, column: 41, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "inspect", span: Span { start: Position { line: 209, column: 43, }, end: Position { line: 209, column: 50, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "predicates", span: Span { start: Position { line: 209, column: 51, }, end: Position { line: 209, column: 61, }, }, }, ), ], default: None, }, ), ], }, ), operator: Update, right: BinaryOperation( BinaryOperation { left: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "mapAttrs", span: Span { start: Position { line: 210, column: 10, }, end: Position { line: 210, column: 18, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "n", }, ), body: Function( Function { head: Simple( FunctionHeadSimple { identifier: "v", }, ), body: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "v", span: Span { start: Position { line: 210, column: 26, }, end: Position { line: 210, column: 27, }, }, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 210, column: 28, }, end: Position { line: 210, column: 33, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "gcc", span: Span { start: Position { line: 210, column: 34, }, end: Position { line: 210, column: 37, }, }, }, ), Raw( PartRaw { content: "arch", span: Span { start: Position { line: 210, column: 38, }, end: Position { line: 210, column: 42, }, }, }, ), ], default: Some( String( String_ { parts: [ Raw( PartRaw { content: "default", span: Span { start: Position { line: 210, column: 47, }, end: Position { line: 210, column: 54, }, }, }, ), ], span: Span { start: Position { line: 210, column: 46, }, end: Position { line: 210, column: 55, }, }, }, ), ), }, ), ], }, ), span: Span { start: Position { line: 210, column: 23, }, end: Position { line: 210, column: 55, }, }, }, ), span: Span { start: Position { line: 210, column: 20, }, end: Position { line: 210, column: 55, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "architectures", span: Span { start: Position { line: 210, column: 57, }, end: Position { line: 210, column: 70, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "predicates", span: Span { start: Position { line: 210, column: 71, }, end: Position { line: 210, column: 81, }, }, }, ), ], default: None, }, ), ], }, ), operator: Update, right: Identifier( Identifier { id: "args", span: Span { start: Position { line: 211, column: 10, }, end: Position { line: 211, column: 14, }, }, }, ), }, ), }, ), }, ), }, ), }, ), ], target: Assert( Assert { expression: BinaryOperation( BinaryOperation { left: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 212, column: 13, }, end: Position { line: 212, column: 18, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "useAndroidPrebuilt", span: Span { start: Position { line: 212, column: 19, }, end: Position { line: 212, column: 37, }, }, }, ), ], default: None, }, ), operator: Implication, right: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 212, column: 41, }, end: Position { line: 212, column: 46, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "isAndroid", span: Span { start: Position { line: 212, column: 47, }, end: Position { line: 212, column: 56, }, }, }, ), ], default: None, }, ), }, ), target: Assert( Assert { expression: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 213, column: 13, }, end: Position { line: 213, column: 16, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "foldl", span: Span { start: Position { line: 213, column: 17, }, end: Position { line: 213, column: 22, }, }, }, ), ], default: None, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "pass", }, ), body: Function( Function { head: Destructured( FunctionHeadDestructured { ellipsis: false, identifier: None, arguments: [ FunctionHeadDestructuredArgument { identifier: "assertion", default: None, }, FunctionHeadDestructuredArgument { identifier: "message", default: None, }, ], }, ), body: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "assertion", span: Span { start: Position { line: 215, column: 13, }, end: Position { line: 215, column: 22, }, }, }, ), arguments: [ Identifier( Identifier { id: "final", span: Span { start: Position { line: 215, column: 23, }, end: Position { line: 215, column: 28, }, }, }, ), ], }, ), then: Identifier( Identifier { id: "pass", span: Span { start: Position { line: 216, column: 15, }, end: Position { line: 216, column: 19, }, }, }, ), else_: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "throw", span: Span { start: Position { line: 217, column: 15, }, end: Position { line: 217, column: 20, }, }, }, ), arguments: [ Identifier( Identifier { id: "message", span: Span { start: Position { line: 217, column: 21, }, end: Position { line: 217, column: 28, }, }, }, ), ], }, ), span: Span { start: Position { line: 215, column: 10, }, end: Position { line: 217, column: 28, }, }, }, ), span: Span { start: Position { line: 214, column: 15, }, end: Position { line: 217, column: 28, }, }, }, ), span: Span { start: Position { line: 214, column: 9, }, end: Position { line: 217, column: 28, }, }, }, ), Identifier( Identifier { id: "true", span: Span { start: Position { line: 218, column: 8, }, end: Position { line: 218, column: 12, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "final", span: Span { start: Position { line: 219, column: 9, }, end: Position { line: 219, column: 14, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "parsed", span: Span { start: Position { line: 219, column: 15, }, end: Position { line: 219, column: 21, }, }, }, ), Raw( PartRaw { content: "abi", span: Span { start: Position { line: 219, column: 22, }, end: Position { line: 219, column: 25, }, }, }, ), Raw( PartRaw { content: "assertions", span: Span { start: Position { line: 219, column: 26, }, end: Position { line: 219, column: 36, }, }, }, ), ], default: Some( List( List { elements: [], span: Span { start: Position { line: 219, column: 40, }, end: Position { line: 219, column: 42, }, }, }, ), ), }, ), ], }, ), target: Identifier( Identifier { id: "final", span: Span { start: Position { line: 220, column: 5, }, end: Position { line: 220, column: 10, }, }, }, ), span: Span { start: Position { line: 213, column: 6, }, end: Position { line: 220, column: 10, }, }, }, ), span: Span { start: Position { line: 212, column: 6, }, end: Position { line: 220, column: 10, }, }, }, ), span: Span { start: Position { line: 25, column: 22, }, end: Position { line: 220, column: 10, }, }, }, ), span: Span { start: Position { line: 25, column: 15, }, end: Position { line: 220, column: 10, }, }, }, ), }, ), ], span: Span { start: Position { line: 4, column: 1, }, end: Position { line: 221, column: 2, }, }, }, ), span: Span { start: Position { line: 2, column: 3, }, end: Position { line: 221, column: 2, }, }, }, ), span: Span { start: Position { line: 1, column: 1, }, end: Position { line: 221, column: 2, }, }, }, )