Function(
 Function {
  head: Destructured(
   FunctionHeadDestructured {
    ellipsis: false,
    identifier: None,
    arguments: [
     FunctionHeadDestructuredArgument {
      identifier: "lib",
      default: None,
     },
    ],
   },
  ),
  body: Map(
   Map {
    recursive: true,
    bindings: [
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "id",
          span: Span {
           start: Position {
            line: 12,
            column: 3,
           },
           end: Position {
            line: 12,
            column: 5,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "x",
          },
         ),
         body: Identifier(
          Identifier {
           id: "x",
           span: Span {
            start: Position {
             line: 14,
             column: 8,
            },
            end: Position {
             line: 14,
             column: 9,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 14,
           column: 5,
          },
          end: Position {
           line: 14,
           column: 9,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "const",
          span: Span {
           start: Position {
            line: 26,
            column: 3,
           },
           end: Position {
            line: 26,
            column: 8,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "x",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "y",
            },
           ),
           body: Identifier(
            Identifier {
             id: "x",
             span: Span {
              start: Position {
               line: 30,
               column: 8,
              },
              end: Position {
               line: 30,
               column: 9,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 30,
             column: 5,
            },
            end: Position {
             line: 30,
             column: 9,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 28,
           column: 5,
          },
          end: Position {
           line: 30,
           column: 9,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "pipe",
          span: Span {
           start: Position {
            line: 61,
            column: 3,
           },
           end: Position {
            line: 61,
            column: 7,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "val",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "functions",
            },
           ),
           body: LetIn(
            LetIn {
             bindings: [
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "reverseApply",
                   span: Span {
                    start: Position {
                     line: 62,
                     column: 9,
                    },
                    end: Position {
                     line: 62,
                     column: 21,
                    },
                   },
                  },
                 ),
                ],
                to: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "x",
                   },
                  ),
                  body: Function(
                   Function {
                    head: Simple(
                     FunctionHeadSimple {
                      identifier: "f",
                     },
                    ),
                    body: FunctionApplication(
                     FunctionApplication {
                      function: Identifier(
                       Identifier {
                        id: "f",
                        span: Span {
                         start: Position {
                          line: 62,
                          column: 30,
                         },
                         end: Position {
                          line: 62,
                          column: 31,
                         },
                        },
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "x",
                         span: Span {
                          start: Position {
                           line: 62,
                           column: 32,
                          },
                          end: Position {
                           line: 62,
                           column: 33,
                          },
                         },
                        },
                       ),
                      ],
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 62,
                      column: 27,
                     },
                     end: Position {
                      line: 62,
                      column: 33,
                     },
                    },
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 62,
                    column: 24,
                   },
                   end: Position {
                    line: 62,
                    column: 33,
                   },
                  },
                 },
                ),
               },
              ),
             ],
             target: FunctionApplication(
              FunctionApplication {
               function: PropertyAccess(
                PropertyAccess {
                 expression: Identifier(
                  Identifier {
                   id: "builtins",
                   span: Span {
                    start: Position {
                     line: 63,
                     column: 8,
                    },
                    end: Position {
                     line: 63,
                     column: 16,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "foldl'",
                    span: Span {
                     start: Position {
                      line: 63,
                      column: 17,
                     },
                     end: Position {
                      line: 63,
                      column: 23,
                     },
                    },
                   },
                  ),
                 ],
                 default: None,
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "reverseApply",
                  span: Span {
                   start: Position {
                    line: 63,
                    column: 24,
                   },
                   end: Position {
                    line: 63,
                    column: 36,
                   },
                  },
                 },
                ),
                Identifier(
                 Identifier {
                  id: "val",
                  span: Span {
                   start: Position {
                    line: 63,
                    column: 37,
                   },
                   end: Position {
                    line: 63,
                    column: 40,
                   },
                  },
                 },
                ),
                Identifier(
                 Identifier {
                  id: "functions",
                  span: Span {
                   start: Position {
                    line: 63,
                    column: 41,
                   },
                   end: Position {
                    line: 63,
                    column: 50,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 62,
               column: 5,
              },
              end: Position {
               line: 63,
               column: 50,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 61,
             column: 15,
            },
            end: Position {
             line: 63,
             column: 50,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 61,
           column: 10,
          },
          end: Position {
           line: 63,
           column: 50,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "concat",
          span: Span {
           start: Position {
            line: 80,
            column: 3,
           },
           end: Position {
            line: 80,
            column: 9,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "x",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "y",
            },
           ),
           body: BinaryOperation(
            BinaryOperation {
             left: Identifier(
              Identifier {
               id: "x",
               span: Span {
                start: Position {
                 line: 80,
                 column: 18,
                },
                end: Position {
                 line: 80,
                 column: 19,
                },
               },
              },
             ),
             operator: Concatenation,
             right: Identifier(
              Identifier {
               id: "y",
               span: Span {
                start: Position {
                 line: 80,
                 column: 23,
                },
                end: Position {
                 line: 80,
                 column: 24,
                },
               },
              },
             ),
            },
           ),
           span: Span {
            start: Position {
             line: 80,
             column: 15,
            },
            end: Position {
             line: 80,
             column: 24,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 80,
           column: 12,
          },
          end: Position {
           line: 80,
           column: 24,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "or",
          span: Span {
           start: Position {
            line: 83,
            column: 3,
           },
           end: Position {
            line: 83,
            column: 5,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "x",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "y",
            },
           ),
           body: BinaryOperation(
            BinaryOperation {
             left: Identifier(
              Identifier {
               id: "x",
               span: Span {
                start: Position {
                 line: 83,
                 column: 14,
                },
                end: Position {
                 line: 83,
                 column: 15,
                },
               },
              },
             ),
             operator: LogicalOr,
             right: Identifier(
              Identifier {
               id: "y",
               span: Span {
                start: Position {
                 line: 83,
                 column: 19,
                },
                end: Position {
                 line: 83,
                 column: 20,
                },
               },
              },
             ),
            },
           ),
           span: Span {
            start: Position {
             line: 83,
             column: 11,
            },
            end: Position {
             line: 83,
             column: 20,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 83,
           column: 8,
          },
          end: Position {
           line: 83,
           column: 20,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "and",
          span: Span {
           start: Position {
            line: 86,
            column: 3,
           },
           end: Position {
            line: 86,
            column: 6,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "x",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "y",
            },
           ),
           body: BinaryOperation(
            BinaryOperation {
             left: Identifier(
              Identifier {
               id: "x",
               span: Span {
                start: Position {
                 line: 86,
                 column: 15,
                },
                end: Position {
                 line: 86,
                 column: 16,
                },
               },
              },
             ),
             operator: LogicalAnd,
             right: Identifier(
              Identifier {
               id: "y",
               span: Span {
                start: Position {
                 line: 86,
                 column: 20,
                },
                end: Position {
                 line: 86,
                 column: 21,
                },
               },
              },
             ),
            },
           ),
           span: Span {
            start: Position {
             line: 86,
             column: 12,
            },
            end: Position {
             line: 86,
             column: 21,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 86,
           column: 9,
          },
          end: Position {
           line: 86,
           column: 21,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "bitAnd",
          span: Span {
           start: Position {
            line: 89,
            column: 3,
           },
           end: Position {
            line: 89,
            column: 9,
           },
          },
         },
        ),
       ],
       to: PropertyAccess(
        PropertyAccess {
         expression: Identifier(
          Identifier {
           id: "builtins",
           span: Span {
            start: Position {
             line: 89,
             column: 12,
            },
            end: Position {
             line: 89,
             column: 20,
            },
           },
          },
         ),
         attribute_path: [
          Raw(
           PartRaw {
            content: "bitAnd",
            span: Span {
             start: Position {
              line: 89,
              column: 21,
             },
             end: Position {
              line: 89,
              column: 27,
             },
            },
           },
          ),
         ],
         default: Some(
          FunctionApplication(
           FunctionApplication {
            function: Identifier(
             Identifier {
              id: "import",
              span: Span {
               start: Position {
                line: 90,
                column: 9,
               },
               end: Position {
                line: 90,
                column: 15,
               },
              },
             },
            ),
            arguments: [
             Path(
              Path {
               parts: [
                Raw(
                 PartRaw {
                  content: "./zip-int-bits.nix",
                  span: Span {
                   start: Position {
                    line: 90,
                    column: 16,
                   },
                   end: Position {
                    line: 90,
                    column: 34,
                   },
                  },
                 },
                ),
               ],
               span: Span {
                start: Position {
                 line: 90,
                 column: 16,
                },
                end: Position {
                 line: 90,
                 column: 34,
                },
               },
              },
             ),
             Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "a",
                },
               ),
               body: Function(
                Function {
                 head: Simple(
                  FunctionHeadSimple {
                   identifier: "b",
                  },
                 ),
                 body: IfThenElse(
                  IfThenElse {
                   predicate: BinaryOperation(
                    BinaryOperation {
                     left: BinaryOperation(
                      BinaryOperation {
                       left: Identifier(
                        Identifier {
                         id: "a",
                         span: Span {
                          start: Position {
                           line: 91,
                           column: 19,
                          },
                          end: Position {
                           line: 91,
                           column: 20,
                          },
                         },
                        },
                       ),
                       operator: EqualTo,
                       right: Integer(
                        Integer {
                         value: "1",
                         span: Span {
                          start: Position {
                           line: 91,
                           column: 22,
                          },
                          end: Position {
                           line: 91,
                           column: 23,
                          },
                         },
                        },
                       ),
                      },
                     ),
                     operator: LogicalAnd,
                     right: BinaryOperation(
                      BinaryOperation {
                       left: Identifier(
                        Identifier {
                         id: "b",
                         span: Span {
                          start: Position {
                           line: 91,
                           column: 27,
                          },
                          end: Position {
                           line: 91,
                           column: 28,
                          },
                         },
                        },
                       ),
                       operator: EqualTo,
                       right: Integer(
                        Integer {
                         value: "1",
                         span: Span {
                          start: Position {
                           line: 91,
                           column: 30,
                          },
                          end: Position {
                           line: 91,
                           column: 31,
                          },
                         },
                        },
                       ),
                      },
                     ),
                    },
                   ),
                   then: Integer(
                    Integer {
                     value: "1",
                     span: Span {
                      start: Position {
                       line: 91,
                       column: 37,
                      },
                      end: Position {
                       line: 91,
                       column: 38,
                      },
                     },
                    },
                   ),
                   else_: Integer(
                    Integer {
                     value: "0",
                     span: Span {
                      start: Position {
                       line: 91,
                       column: 44,
                      },
                      end: Position {
                       line: 91,
                       column: 45,
                      },
                     },
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 91,
                     column: 16,
                    },
                    end: Position {
                     line: 91,
                     column: 45,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 91,
                   column: 13,
                  },
                  end: Position {
                   line: 91,
                   column: 45,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 91,
                 column: 10,
                },
                end: Position {
                 line: 91,
                 column: 45,
                },
               },
              },
             ),
            ],
           },
          ),
         ),
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "bitOr",
          span: Span {
           start: Position {
            line: 94,
            column: 3,
           },
           end: Position {
            line: 94,
            column: 8,
           },
          },
         },
        ),
       ],
       to: PropertyAccess(
        PropertyAccess {
         expression: Identifier(
          Identifier {
           id: "builtins",
           span: Span {
            start: Position {
             line: 94,
             column: 11,
            },
            end: Position {
             line: 94,
             column: 19,
            },
           },
          },
         ),
         attribute_path: [
          Raw(
           PartRaw {
            content: "bitOr",
            span: Span {
             start: Position {
              line: 94,
              column: 20,
             },
             end: Position {
              line: 94,
              column: 25,
             },
            },
           },
          ),
         ],
         default: Some(
          FunctionApplication(
           FunctionApplication {
            function: Identifier(
             Identifier {
              id: "import",
              span: Span {
               start: Position {
                line: 95,
                column: 9,
               },
               end: Position {
                line: 95,
                column: 15,
               },
              },
             },
            ),
            arguments: [
             Path(
              Path {
               parts: [
                Raw(
                 PartRaw {
                  content: "./zip-int-bits.nix",
                  span: Span {
                   start: Position {
                    line: 95,
                    column: 16,
                   },
                   end: Position {
                    line: 95,
                    column: 34,
                   },
                  },
                 },
                ),
               ],
               span: Span {
                start: Position {
                 line: 95,
                 column: 16,
                },
                end: Position {
                 line: 95,
                 column: 34,
                },
               },
              },
             ),
             Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "a",
                },
               ),
               body: Function(
                Function {
                 head: Simple(
                  FunctionHeadSimple {
                   identifier: "b",
                  },
                 ),
                 body: IfThenElse(
                  IfThenElse {
                   predicate: BinaryOperation(
                    BinaryOperation {
                     left: BinaryOperation(
                      BinaryOperation {
                       left: Identifier(
                        Identifier {
                         id: "a",
                         span: Span {
                          start: Position {
                           line: 96,
                           column: 19,
                          },
                          end: Position {
                           line: 96,
                           column: 20,
                          },
                         },
                        },
                       ),
                       operator: EqualTo,
                       right: Integer(
                        Integer {
                         value: "1",
                         span: Span {
                          start: Position {
                           line: 96,
                           column: 22,
                          },
                          end: Position {
                           line: 96,
                           column: 23,
                          },
                         },
                        },
                       ),
                      },
                     ),
                     operator: LogicalOr,
                     right: BinaryOperation(
                      BinaryOperation {
                       left: Identifier(
                        Identifier {
                         id: "b",
                         span: Span {
                          start: Position {
                           line: 96,
                           column: 27,
                          },
                          end: Position {
                           line: 96,
                           column: 28,
                          },
                         },
                        },
                       ),
                       operator: EqualTo,
                       right: Integer(
                        Integer {
                         value: "1",
                         span: Span {
                          start: Position {
                           line: 96,
                           column: 30,
                          },
                          end: Position {
                           line: 96,
                           column: 31,
                          },
                         },
                        },
                       ),
                      },
                     ),
                    },
                   ),
                   then: Integer(
                    Integer {
                     value: "1",
                     span: Span {
                      start: Position {
                       line: 96,
                       column: 37,
                      },
                      end: Position {
                       line: 96,
                       column: 38,
                      },
                     },
                    },
                   ),
                   else_: Integer(
                    Integer {
                     value: "0",
                     span: Span {
                      start: Position {
                       line: 96,
                       column: 44,
                      },
                      end: Position {
                       line: 96,
                       column: 45,
                      },
                     },
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 96,
                     column: 16,
                    },
                    end: Position {
                     line: 96,
                     column: 45,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 96,
                   column: 13,
                  },
                  end: Position {
                   line: 96,
                   column: 45,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 96,
                 column: 10,
                },
                end: Position {
                 line: 96,
                 column: 45,
                },
               },
              },
             ),
            ],
           },
          ),
         ),
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "bitXor",
          span: Span {
           start: Position {
            line: 99,
            column: 3,
           },
           end: Position {
            line: 99,
            column: 9,
           },
          },
         },
        ),
       ],
       to: PropertyAccess(
        PropertyAccess {
         expression: Identifier(
          Identifier {
           id: "builtins",
           span: Span {
            start: Position {
             line: 99,
             column: 12,
            },
            end: Position {
             line: 99,
             column: 20,
            },
           },
          },
         ),
         attribute_path: [
          Raw(
           PartRaw {
            content: "bitXor",
            span: Span {
             start: Position {
              line: 99,
              column: 21,
             },
             end: Position {
              line: 99,
              column: 27,
             },
            },
           },
          ),
         ],
         default: Some(
          FunctionApplication(
           FunctionApplication {
            function: Identifier(
             Identifier {
              id: "import",
              span: Span {
               start: Position {
                line: 100,
                column: 9,
               },
               end: Position {
                line: 100,
                column: 15,
               },
              },
             },
            ),
            arguments: [
             Path(
              Path {
               parts: [
                Raw(
                 PartRaw {
                  content: "./zip-int-bits.nix",
                  span: Span {
                   start: Position {
                    line: 100,
                    column: 16,
                   },
                   end: Position {
                    line: 100,
                    column: 34,
                   },
                  },
                 },
                ),
               ],
               span: Span {
                start: Position {
                 line: 100,
                 column: 16,
                },
                end: Position {
                 line: 100,
                 column: 34,
                },
               },
              },
             ),
             Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "a",
                },
               ),
               body: Function(
                Function {
                 head: Simple(
                  FunctionHeadSimple {
                   identifier: "b",
                  },
                 ),
                 body: IfThenElse(
                  IfThenElse {
                   predicate: BinaryOperation(
                    BinaryOperation {
                     left: Identifier(
                      Identifier {
                       id: "a",
                       span: Span {
                        start: Position {
                         line: 101,
                         column: 19,
                        },
                        end: Position {
                         line: 101,
                         column: 20,
                        },
                       },
                      },
                     ),
                     operator: NotEqualTo,
                     right: Identifier(
                      Identifier {
                       id: "b",
                       span: Span {
                        start: Position {
                         line: 101,
                         column: 22,
                        },
                        end: Position {
                         line: 101,
                         column: 23,
                        },
                       },
                      },
                     ),
                    },
                   ),
                   then: Integer(
                    Integer {
                     value: "1",
                     span: Span {
                      start: Position {
                       line: 101,
                       column: 29,
                      },
                      end: Position {
                       line: 101,
                       column: 30,
                      },
                     },
                    },
                   ),
                   else_: Integer(
                    Integer {
                     value: "0",
                     span: Span {
                      start: Position {
                       line: 101,
                       column: 36,
                      },
                      end: Position {
                       line: 101,
                       column: 37,
                      },
                     },
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 101,
                     column: 16,
                    },
                    end: Position {
                     line: 101,
                     column: 37,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 101,
                   column: 13,
                  },
                  end: Position {
                   line: 101,
                   column: 37,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 101,
                 column: 10,
                },
                end: Position {
                 line: 101,
                 column: 37,
                },
               },
              },
             ),
            ],
           },
          ),
         ),
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "bitNot",
          span: Span {
           start: Position {
            line: 104,
            column: 3,
           },
           end: Position {
            line: 104,
            column: 9,
           },
          },
         },
        ),
       ],
       to: FunctionApplication(
        FunctionApplication {
         function: PropertyAccess(
          PropertyAccess {
           expression: Identifier(
            Identifier {
             id: "builtins",
             span: Span {
              start: Position {
               line: 104,
               column: 12,
              },
              end: Position {
               line: 104,
               column: 20,
              },
             },
            },
           ),
           attribute_path: [
            Raw(
             PartRaw {
              content: "sub",
              span: Span {
               start: Position {
                line: 104,
                column: 21,
               },
               end: Position {
                line: 104,
                column: 24,
               },
              },
             },
            ),
           ],
           default: None,
          },
         ),
         arguments: [
          UnaryOperation(
           UnaryOperation {
            operator: Negate,
            operand: Integer(
             Integer {
              value: "1",
              span: Span {
               start: Position {
                line: 104,
                column: 27,
               },
               end: Position {
                line: 104,
                column: 28,
               },
              },
             },
            ),
            span: Span {
             start: Position {
              line: 104,
              column: 26,
             },
             end: Position {
              line: 104,
              column: 28,
             },
            },
           },
          ),
         ],
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "boolToString",
          span: Span {
           start: Position {
            line: 114,
            column: 3,
           },
           end: Position {
            line: 114,
            column: 15,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "b",
          },
         ),
         body: IfThenElse(
          IfThenElse {
           predicate: Identifier(
            Identifier {
             id: "b",
             span: Span {
              start: Position {
               line: 114,
               column: 24,
              },
              end: Position {
               line: 114,
               column: 25,
              },
             },
            },
           ),
           then: String(
            String_ {
             parts: [
              Raw(
               PartRaw {
                content: "true",
                span: Span {
                 start: Position {
                  line: 114,
                  column: 32,
                 },
                 end: Position {
                  line: 114,
                  column: 36,
                 },
                },
               },
              ),
             ],
             span: Span {
              start: Position {
               line: 114,
               column: 31,
              },
              end: Position {
               line: 114,
               column: 37,
              },
             },
            },
           ),
           else_: String(
            String_ {
             parts: [
              Raw(
               PartRaw {
                content: "false",
                span: Span {
                 start: Position {
                  line: 114,
                  column: 44,
                 },
                 end: Position {
                  line: 114,
                  column: 49,
                 },
                },
               },
              ),
             ],
             span: Span {
              start: Position {
               line: 114,
               column: 43,
              },
              end: Position {
               line: 114,
               column: 50,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 114,
             column: 21,
            },
            end: Position {
             line: 114,
             column: 50,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 114,
           column: 18,
          },
          end: Position {
           line: 114,
           column: 50,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "mergeAttrs",
          span: Span {
           start: Position {
            line: 124,
            column: 3,
           },
           end: Position {
            line: 124,
            column: 13,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "x",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "y",
            },
           ),
           body: BinaryOperation(
            BinaryOperation {
             left: Identifier(
              Identifier {
               id: "x",
               span: Span {
                start: Position {
                 line: 128,
                 column: 8,
                },
                end: Position {
                 line: 128,
                 column: 9,
                },
               },
              },
             ),
             operator: Update,
             right: Identifier(
              Identifier {
               id: "y",
               span: Span {
                start: Position {
                 line: 128,
                 column: 13,
                },
                end: Position {
                 line: 128,
                 column: 14,
                },
               },
              },
             ),
            },
           ),
           span: Span {
            start: Position {
             line: 128,
             column: 5,
            },
            end: Position {
             line: 128,
             column: 14,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 126,
           column: 5,
          },
          end: Position {
           line: 128,
           column: 14,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "flip",
          span: Span {
           start: Position {
            line: 138,
            column: 3,
           },
           end: Position {
            line: 138,
            column: 7,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "f",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "a",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "b",
              },
             ),
             body: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "f",
                 span: Span {
                  start: Position {
                   line: 138,
                   column: 19,
                  },
                  end: Position {
                   line: 138,
                   column: 20,
                  },
                 },
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "b",
                  span: Span {
                   start: Position {
                    line: 138,
                    column: 21,
                   },
                   end: Position {
                    line: 138,
                    column: 22,
                   },
                  },
                 },
                ),
                Identifier(
                 Identifier {
                  id: "a",
                  span: Span {
                   start: Position {
                    line: 138,
                    column: 23,
                   },
                   end: Position {
                    line: 138,
                    column: 24,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 138,
               column: 16,
              },
              end: Position {
               line: 138,
               column: 24,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 138,
             column: 13,
            },
            end: Position {
             line: 138,
             column: 24,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 138,
           column: 10,
          },
          end: Position {
           line: 138,
           column: 24,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "mapNullable",
          span: Span {
           start: Position {
            line: 148,
            column: 3,
           },
           end: Position {
            line: 148,
            column: 14,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "f",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "a",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: BinaryOperation(
              BinaryOperation {
               left: Identifier(
                Identifier {
                 id: "a",
                 span: Span {
                  start: Position {
                   line: 152,
                   column: 11,
                  },
                  end: Position {
                   line: 152,
                   column: 12,
                  },
                 },
                },
               ),
               operator: EqualTo,
               right: Identifier(
                Identifier {
                 id: "null",
                 span: Span {
                  start: Position {
                   line: 152,
                   column: 16,
                  },
                  end: Position {
                   line: 152,
                   column: 20,
                  },
                 },
                },
               ),
              },
             ),
             then: Identifier(
              Identifier {
               id: "a",
               span: Span {
                start: Position {
                 line: 152,
                 column: 26,
                },
                end: Position {
                 line: 152,
                 column: 27,
                },
               },
              },
             ),
             else_: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "f",
                 span: Span {
                  start: Position {
                   line: 152,
                   column: 33,
                  },
                  end: Position {
                   line: 152,
                   column: 34,
                  },
                 },
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "a",
                  span: Span {
                   start: Position {
                    line: 152,
                    column: 35,
                   },
                   end: Position {
                    line: 152,
                    column: 36,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 152,
               column: 8,
              },
              end: Position {
               line: 152,
               column: 36,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 152,
             column: 5,
            },
            end: Position {
             line: 152,
             column: 36,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 150,
           column: 5,
          },
          end: Position {
           line: 152,
           column: 36,
          },
         },
        },
       ),
      },
     ),
     Inherit(
      BindingInherit {
       from: Some(
        Identifier(
         Identifier {
          id: "builtins",
          span: Span {
           start: Position {
            line: 155,
            column: 12,
           },
           end: Position {
            line: 155,
            column: 20,
           },
          },
         },
        ),
       ),
       attributes: [
        Raw(
         PartRaw {
          content: "pathExists",
          span: Span {
           start: Position {
            line: 156,
            column: 5,
           },
           end: Position {
            line: 156,
            column: 15,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "readFile",
          span: Span {
           start: Position {
            line: 156,
            column: 16,
           },
           end: Position {
            line: 156,
            column: 24,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "isBool",
          span: Span {
           start: Position {
            line: 156,
            column: 25,
           },
           end: Position {
            line: 156,
            column: 31,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "isInt",
          span: Span {
           start: Position {
            line: 157,
            column: 5,
           },
           end: Position {
            line: 157,
            column: 10,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "isFloat",
          span: Span {
           start: Position {
            line: 157,
            column: 11,
           },
           end: Position {
            line: 157,
            column: 18,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "add",
          span: Span {
           start: Position {
            line: 157,
            column: 19,
           },
           end: Position {
            line: 157,
            column: 22,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "sub",
          span: Span {
           start: Position {
            line: 157,
            column: 23,
           },
           end: Position {
            line: 157,
            column: 26,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "lessThan",
          span: Span {
           start: Position {
            line: 157,
            column: 27,
           },
           end: Position {
            line: 157,
            column: 35,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "seq",
          span: Span {
           start: Position {
            line: 158,
            column: 5,
           },
           end: Position {
            line: 158,
            column: 8,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "deepSeq",
          span: Span {
           start: Position {
            line: 158,
            column: 9,
           },
           end: Position {
            line: 158,
            column: 16,
           },
          },
         },
        ),
        Raw(
         PartRaw {
          content: "genericClosure",
          span: Span {
           start: Position {
            line: 158,
            column: 17,
           },
           end: Position {
            line: 158,
            column: 31,
           },
          },
         },
        ),
       ],
       span: Span {
        start: Position {
         line: 3,
         column: 6,
        },
        end: Position {
         line: 158,
         column: 32,
        },
       },
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "version",
          span: Span {
           start: Position {
            line: 164,
            column: 3,
           },
           end: Position {
            line: 164,
            column: 10,
           },
          },
         },
        ),
       ],
       to: BinaryOperation(
        BinaryOperation {
         left: Identifier(
          Identifier {
           id: "release",
           span: Span {
            start: Position {
             line: 164,
             column: 13,
            },
            end: Position {
             line: 164,
             column: 20,
            },
           },
          },
         ),
         operator: Addition,
         right: Identifier(
          Identifier {
           id: "versionSuffix",
           span: Span {
            start: Position {
             line: 164,
             column: 23,
            },
            end: Position {
             line: 164,
             column: 36,
            },
           },
          },
         ),
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "release",
          span: Span {
           start: Position {
            line: 167,
            column: 3,
           },
           end: Position {
            line: 167,
            column: 10,
           },
          },
         },
        ),
       ],
       to: FunctionApplication(
        FunctionApplication {
         function: PropertyAccess(
          PropertyAccess {
           expression: Identifier(
            Identifier {
             id: "lib",
             span: Span {
              start: Position {
               line: 167,
               column: 13,
              },
              end: Position {
               line: 167,
               column: 16,
              },
             },
            },
           ),
           attribute_path: [
            Raw(
             PartRaw {
              content: "strings",
              span: Span {
               start: Position {
                line: 167,
                column: 17,
               },
               end: Position {
                line: 167,
                column: 24,
               },
              },
             },
            ),
            Raw(
             PartRaw {
              content: "fileContents",
              span: Span {
               start: Position {
                line: 167,
                column: 25,
               },
               end: Position {
                line: 167,
                column: 37,
               },
              },
             },
            ),
           ],
           default: None,
          },
         ),
         arguments: [
          Path(
           Path {
            parts: [
             Raw(
              PartRaw {
               content: "../.version",
               span: Span {
                start: Position {
                 line: 167,
                 column: 38,
                },
                end: Position {
                 line: 167,
                 column: 49,
                },
               },
              },
             ),
            ],
            span: Span {
             start: Position {
              line: 167,
              column: 38,
             },
             end: Position {
              line: 167,
              column: 49,
             },
            },
           },
          ),
         ],
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "oldestSupportedRelease",
          span: Span {
           start: Position {
            line: 180,
            column: 3,
           },
           end: Position {
            line: 180,
            column: 25,
           },
          },
         },
        ),
       ],
       to: Integer(
        Integer {
         value: "2205",
         span: Span {
          start: Position {
           line: 182,
           column: 5,
          },
          end: Position {
           line: 182,
           column: 9,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "isInOldestRelease",
          span: Span {
           start: Position {
            line: 186,
            column: 3,
           },
           end: Position {
            line: 186,
            column: 20,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "release",
          },
         ),
         body: BinaryOperation(
          BinaryOperation {
           left: Identifier(
            Identifier {
             id: "release",
             span: Span {
              start: Position {
               line: 191,
               column: 7,
              },
              end: Position {
               line: 191,
               column: 14,
              },
             },
            },
           ),
           operator: LessThanOrEqualTo,
           right: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "lib",
               span: Span {
                start: Position {
                 line: 191,
                 column: 18,
                },
                end: Position {
                 line: 191,
                 column: 21,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "trivial",
                span: Span {
                 start: Position {
                  line: 191,
                  column: 22,
                 },
                 end: Position {
                  line: 191,
                  column: 29,
                 },
                },
               },
              ),
              Raw(
               PartRaw {
                content: "oldestSupportedRelease",
                span: Span {
                 start: Position {
                  line: 191,
                  column: 30,
                 },
                 end: Position {
                  line: 191,
                  column: 52,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
          },
         ),
         span: Span {
          start: Position {
           line: 190,
           column: 5,
          },
          end: Position {
           line: 191,
           column: 52,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "codeName",
          span: Span {
           start: Position {
            line: 198,
            column: 3,
           },
           end: Position {
            line: 198,
            column: 11,
           },
          },
         },
        ),
       ],
       to: String(
        String_ {
         parts: [
          Raw(
           PartRaw {
            content: "Raccoon",
            span: Span {
             start: Position {
              line: 198,
              column: 15,
             },
             end: Position {
              line: 198,
              column: 22,
             },
            },
           },
          ),
         ],
         span: Span {
          start: Position {
           line: 198,
           column: 14,
          },
          end: Position {
           line: 198,
           column: 23,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "versionSuffix",
          span: Span {
           start: Position {
            line: 201,
            column: 3,
           },
           end: Position {
            line: 201,
            column: 16,
           },
          },
         },
        ),
       ],
       to: LetIn(
        LetIn {
         bindings: [
          KeyValue(
           BindingKeyValue {
            from: [
             Raw(
              PartRaw {
               content: "suffixFile",
               span: Span {
                start: Position {
                 line: 202,
                 column: 9,
                },
                end: Position {
                 line: 202,
                 column: 19,
                },
               },
              },
             ),
            ],
            to: Path(
             Path {
              parts: [
               Raw(
                PartRaw {
                 content: "../.version-suffix",
                 span: Span {
                  start: Position {
                   line: 202,
                   column: 22,
                  },
                  end: Position {
                   line: 202,
                   column: 40,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 202,
                column: 22,
               },
               end: Position {
                line: 202,
                column: 40,
               },
              },
             },
            ),
           },
          ),
         ],
         target: IfThenElse(
          IfThenElse {
           predicate: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "pathExists",
               span: Span {
                start: Position {
                 line: 203,
                 column: 11,
                },
                end: Position {
                 line: 203,
                 column: 21,
                },
               },
              },
             ),
             arguments: [
              Identifier(
               Identifier {
                id: "suffixFile",
                span: Span {
                 start: Position {
                  line: 203,
                  column: 22,
                 },
                 end: Position {
                  line: 203,
                  column: 32,
                 },
                },
               },
              ),
             ],
            },
           ),
           then: FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "lib",
                 span: Span {
                  start: Position {
                   line: 204,
                   column: 10,
                  },
                  end: Position {
                   line: 204,
                   column: 13,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "strings",
                  span: Span {
                   start: Position {
                    line: 204,
                    column: 14,
                   },
                   end: Position {
                    line: 204,
                    column: 21,
                   },
                  },
                 },
                ),
                Raw(
                 PartRaw {
                  content: "fileContents",
                  span: Span {
                   start: Position {
                    line: 204,
                    column: 22,
                   },
                   end: Position {
                    line: 204,
                    column: 34,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              Identifier(
               Identifier {
                id: "suffixFile",
                span: Span {
                 start: Position {
                  line: 204,
                  column: 35,
                 },
                 end: Position {
                  line: 204,
                  column: 45,
                 },
                },
               },
              ),
             ],
            },
           ),
           else_: String(
            String_ {
             parts: [
              Raw(
               PartRaw {
                content: "pre-git",
                span: Span {
                 start: Position {
                  line: 205,
                  column: 11,
                 },
                 end: Position {
                  line: 205,
                  column: 18,
                 },
                },
               },
              ),
             ],
             span: Span {
              start: Position {
               line: 205,
               column: 10,
              },
              end: Position {
               line: 205,
               column: 19,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 203,
             column: 8,
            },
            end: Position {
             line: 205,
             column: 19,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 202,
           column: 5,
          },
          end: Position {
           line: 205,
           column: 19,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "revisionWithDefault",
          span: Span {
           start: Position {
            line: 212,
            column: 3,
           },
           end: Position {
            line: 212,
            column: 22,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "default",
          },
         ),
         body: LetIn(
          LetIn {
           bindings: [
            KeyValue(
             BindingKeyValue {
              from: [
               Raw(
                PartRaw {
                 content: "revisionFile",
                 span: Span {
                  start: Position {
                   line: 216,
                   column: 7,
                  },
                  end: Position {
                   line: 216,
                   column: 19,
                  },
                 },
                },
               ),
              ],
              to: String(
               String_ {
                parts: [
                 Interpolation(
                  PartInterpolation {
                   expression: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "toString",
                       span: Span {
                        start: Position {
                         line: 216,
                         column: 25,
                        },
                        end: Position {
                         line: 216,
                         column: 33,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Path(
                       Path {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "./..",
                           span: Span {
                            start: Position {
                             line: 216,
                             column: 34,
                            },
                            end: Position {
                             line: 216,
                             column: 38,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 216,
                          column: 34,
                         },
                         end: Position {
                          line: 216,
                          column: 38,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/.git-revision",
                   span: Span {
                    start: Position {
                     line: 216,
                     column: 23,
                    },
                    end: Position {
                     line: 216,
                     column: 53,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 216,
                  column: 22,
                 },
                 end: Position {
                  line: 216,
                  column: 54,
                 },
                },
               },
              ),
             },
            ),
            KeyValue(
             BindingKeyValue {
              from: [
               Raw(
                PartRaw {
                 content: "gitRepo",
                 span: Span {
                  start: Position {
                   line: 217,
                   column: 7,
                  },
                  end: Position {
                   line: 217,
                   column: 14,
                  },
                 },
                },
               ),
              ],
              to: String(
               String_ {
                parts: [
                 Interpolation(
                  PartInterpolation {
                   expression: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "toString",
                       span: Span {
                        start: Position {
                         line: 217,
                         column: 25,
                        },
                        end: Position {
                         line: 217,
                         column: 33,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Path(
                       Path {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "./..",
                           span: Span {
                            start: Position {
                             line: 217,
                             column: 34,
                            },
                            end: Position {
                             line: 217,
                             column: 38,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 217,
                          column: 34,
                         },
                         end: Position {
                          line: 217,
                          column: 38,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "/.git",
                   span: Span {
                    start: Position {
                     line: 217,
                     column: 23,
                    },
                    end: Position {
                     line: 217,
                     column: 44,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 217,
                  column: 22,
                 },
                 end: Position {
                  line: 217,
                  column: 45,
                 },
                },
               },
              ),
             },
            ),
           ],
           target: IfThenElse(
            IfThenElse {
             predicate: FunctionApplication(
              FunctionApplication {
               function: PropertyAccess(
                PropertyAccess {
                 expression: Identifier(
                  Identifier {
                   id: "lib",
                   span: Span {
                    start: Position {
                     line: 218,
                     column: 11,
                    },
                    end: Position {
                     line: 218,
                     column: 14,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "pathIsGitRepo",
                    span: Span {
                     start: Position {
                      line: 218,
                      column: 15,
                     },
                     end: Position {
                      line: 218,
                      column: 28,
                     },
                    },
                   },
                  ),
                 ],
                 default: None,
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "gitRepo",
                  span: Span {
                   start: Position {
                    line: 218,
                    column: 29,
                   },
                   end: Position {
                    line: 218,
                    column: 36,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             then: FunctionApplication(
              FunctionApplication {
               function: PropertyAccess(
                PropertyAccess {
                 expression: Identifier(
                  Identifier {
                   id: "lib",
                   span: Span {
                    start: Position {
                     line: 219,
                     column: 13,
                    },
                    end: Position {
                     line: 219,
                     column: 16,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "commitIdFromGitRepo",
                    span: Span {
                     start: Position {
                      line: 219,
                      column: 17,
                     },
                     end: Position {
                      line: 219,
                      column: 36,
                     },
                    },
                   },
                  ),
                 ],
                 default: None,
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "gitRepo",
                  span: Span {
                   start: Position {
                    line: 219,
                    column: 37,
                   },
                   end: Position {
                    line: 219,
                    column: 44,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             else_: IfThenElse(
              IfThenElse {
               predicate: FunctionApplication(
                FunctionApplication {
                 function: PropertyAccess(
                  PropertyAccess {
                   expression: Identifier(
                    Identifier {
                     id: "lib",
                     span: Span {
                      start: Position {
                       line: 220,
                       column: 16,
                      },
                      end: Position {
                       line: 220,
                       column: 19,
                      },
                     },
                    },
                   ),
                   attribute_path: [
                    Raw(
                     PartRaw {
                      content: "pathExists",
                      span: Span {
                       start: Position {
                        line: 220,
                        column: 20,
                       },
                       end: Position {
                        line: 220,
                        column: 30,
                       },
                      },
                     },
                    ),
                   ],
                   default: None,
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "revisionFile",
                    span: Span {
                     start: Position {
                      line: 220,
                      column: 31,
                     },
                     end: Position {
                      line: 220,
                      column: 43,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               then: FunctionApplication(
                FunctionApplication {
                 function: PropertyAccess(
                  PropertyAccess {
                   expression: Identifier(
                    Identifier {
                     id: "lib",
                     span: Span {
                      start: Position {
                       line: 220,
                       column: 49,
                      },
                      end: Position {
                       line: 220,
                       column: 52,
                      },
                     },
                    },
                   ),
                   attribute_path: [
                    Raw(
                     PartRaw {
                      content: "fileContents",
                      span: Span {
                       start: Position {
                        line: 220,
                        column: 53,
                       },
                       end: Position {
                        line: 220,
                        column: 65,
                       },
                      },
                     },
                    ),
                   ],
                   default: None,
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "revisionFile",
                    span: Span {
                     start: Position {
                      line: 220,
                      column: 66,
                     },
                     end: Position {
                      line: 220,
                      column: 78,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               else_: Identifier(
                Identifier {
                 id: "default",
                 span: Span {
                  start: Position {
                   line: 221,
                   column: 13,
                  },
                  end: Position {
                   line: 221,
                   column: 20,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 220,
                 column: 13,
                },
                end: Position {
                 line: 221,
                 column: 20,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 218,
               column: 8,
              },
              end: Position {
               line: 221,
               column: 20,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 215,
             column: 5,
            },
            end: Position {
             line: 221,
             column: 20,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 214,
           column: 5,
          },
          end: Position {
           line: 221,
           column: 20,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "nixpkgsVersion",
          span: Span {
           start: Position {
            line: 223,
            column: 3,
           },
           end: Position {
            line: 223,
            column: 17,
           },
          },
         },
        ),
       ],
       to: FunctionApplication(
        FunctionApplication {
         function: PropertyAccess(
          PropertyAccess {
           expression: Identifier(
            Identifier {
             id: "builtins",
             span: Span {
              start: Position {
               line: 223,
               column: 20,
              },
              end: Position {
               line: 223,
               column: 28,
              },
             },
            },
           ),
           attribute_path: [
            Raw(
             PartRaw {
              content: "trace",
              span: Span {
               start: Position {
                line: 223,
                column: 29,
               },
               end: Position {
                line: 223,
                column: 34,
               },
              },
             },
            ),
           ],
           default: None,
          },
         ),
         arguments: [
          String(
           String_ {
            parts: [
             Raw(
              PartRaw {
               content: "`lib.nixpkgsVersion` is deprecated, use `lib.version` instead!",
               span: Span {
                start: Position {
                 line: 223,
                 column: 36,
                },
                end: Position {
                 line: 223,
                 column: 98,
                },
               },
              },
             ),
            ],
            span: Span {
             start: Position {
              line: 223,
              column: 35,
             },
             end: Position {
              line: 223,
              column: 99,
             },
            },
           },
          ),
          Identifier(
           Identifier {
            id: "version",
            span: Span {
             start: Position {
              line: 223,
              column: 100,
             },
             end: Position {
              line: 223,
              column: 107,
             },
            },
           },
          ),
         ],
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "inNixShell",
          span: Span {
           start: Position {
            line: 230,
            column: 3,
           },
           end: Position {
            line: 230,
            column: 13,
           },
          },
         },
        ),
       ],
       to: BinaryOperation(
        BinaryOperation {
         left: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "builtins",
               span: Span {
                start: Position {
                 line: 230,
                 column: 16,
                },
                end: Position {
                 line: 230,
                 column: 24,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "getEnv",
                span: Span {
                 start: Position {
                  line: 230,
                  column: 25,
                 },
                 end: Position {
                  line: 230,
                  column: 31,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "IN_NIX_SHELL",
                 span: Span {
                  start: Position {
                   line: 230,
                   column: 33,
                  },
                  end: Position {
                   line: 230,
                   column: 45,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 230,
                column: 32,
               },
               end: Position {
                line: 230,
                column: 46,
               },
              },
             },
            ),
           ],
          },
         ),
         operator: NotEqualTo,
         right: String(
          String_ {
           parts: [],
           span: Span {
            start: Position {
             line: 230,
             column: 50,
            },
            end: Position {
             line: 230,
             column: 52,
            },
           },
          },
         ),
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "inPureEvalMode",
          span: Span {
           start: Position {
            line: 238,
            column: 3,
           },
           end: Position {
            line: 238,
            column: 17,
           },
          },
         },
        ),
       ],
       to: UnaryOperation(
        UnaryOperation {
         operator: Not,
         operand: HasAttribute(
          HasAttribute {
           expression: Identifier(
            Identifier {
             id: "builtins",
             span: Span {
              start: Position {
               line: 238,
               column: 22,
              },
              end: Position {
               line: 238,
               column: 30,
              },
             },
            },
           ),
           attribute_path: [
            Raw(
             PartRaw {
              content: "currentSystem",
              span: Span {
               start: Position {
                line: 238,
                column: 33,
               },
               end: Position {
                line: 238,
                column: 46,
               },
              },
             },
            ),
           ],
          },
         ),
         span: Span {
          start: Position {
           line: 238,
           column: 20,
          },
          end: Position {
           line: 238,
           column: 46,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "min",
          span: Span {
           start: Position {
            line: 243,
            column: 3,
           },
           end: Position {
            line: 243,
            column: 6,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "x",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "y",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: BinaryOperation(
              BinaryOperation {
               left: Identifier(
                Identifier {
                 id: "x",
                 span: Span {
                  start: Position {
                   line: 243,
                   column: 18,
                  },
                  end: Position {
                   line: 243,
                   column: 19,
                  },
                 },
                },
               ),
               operator: LessThan,
               right: Identifier(
                Identifier {
                 id: "y",
                 span: Span {
                  start: Position {
                   line: 243,
                   column: 22,
                  },
                  end: Position {
                   line: 243,
                   column: 23,
                  },
                 },
                },
               ),
              },
             ),
             then: Identifier(
              Identifier {
               id: "x",
               span: Span {
                start: Position {
                 line: 243,
                 column: 29,
                },
                end: Position {
                 line: 243,
                 column: 30,
                },
               },
              },
             ),
             else_: Identifier(
              Identifier {
               id: "y",
               span: Span {
                start: Position {
                 line: 243,
                 column: 36,
                },
                end: Position {
                 line: 243,
                 column: 37,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 243,
               column: 15,
              },
              end: Position {
               line: 243,
               column: 37,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 243,
             column: 12,
            },
            end: Position {
             line: 243,
             column: 37,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 243,
           column: 9,
          },
          end: Position {
           line: 243,
           column: 37,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "max",
          span: Span {
           start: Position {
            line: 246,
            column: 3,
           },
           end: Position {
            line: 246,
            column: 6,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "x",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "y",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: BinaryOperation(
              BinaryOperation {
               left: Identifier(
                Identifier {
                 id: "x",
                 span: Span {
                  start: Position {
                   line: 246,
                   column: 18,
                  },
                  end: Position {
                   line: 246,
                   column: 19,
                  },
                 },
                },
               ),
               operator: GreaterThan,
               right: Identifier(
                Identifier {
                 id: "y",
                 span: Span {
                  start: Position {
                   line: 246,
                   column: 22,
                  },
                  end: Position {
                   line: 246,
                   column: 23,
                  },
                 },
                },
               ),
              },
             ),
             then: Identifier(
              Identifier {
               id: "x",
               span: Span {
                start: Position {
                 line: 246,
                 column: 29,
                },
                end: Position {
                 line: 246,
                 column: 30,
                },
               },
              },
             ),
             else_: Identifier(
              Identifier {
               id: "y",
               span: Span {
                start: Position {
                 line: 246,
                 column: 36,
                },
                end: Position {
                 line: 246,
                 column: 37,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 246,
               column: 15,
              },
              end: Position {
               line: 246,
               column: 37,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 246,
             column: 12,
            },
            end: Position {
             line: 246,
             column: 37,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 246,
           column: 9,
          },
          end: Position {
           line: 246,
           column: 37,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "mod",
          span: Span {
           start: Position {
            line: 256,
            column: 3,
           },
           end: Position {
            line: 256,
            column: 6,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "base",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "int",
            },
           ),
           body: BinaryOperation(
            BinaryOperation {
             left: Identifier(
              Identifier {
               id: "base",
               span: Span {
                start: Position {
                 line: 256,
                 column: 20,
                },
                end: Position {
                 line: 256,
                 column: 24,
                },
               },
              },
             ),
             operator: Subtraction,
             right: BinaryOperation(
              BinaryOperation {
               left: Identifier(
                Identifier {
                 id: "int",
                 span: Span {
                  start: Position {
                   line: 256,
                   column: 28,
                  },
                  end: Position {
                   line: 256,
                   column: 31,
                  },
                 },
                },
               ),
               operator: Multiplication,
               right: FunctionApplication(
                FunctionApplication {
                 function: PropertyAccess(
                  PropertyAccess {
                   expression: Identifier(
                    Identifier {
                     id: "builtins",
                     span: Span {
                      start: Position {
                       line: 256,
                       column: 35,
                      },
                      end: Position {
                       line: 256,
                       column: 43,
                      },
                     },
                    },
                   ),
                   attribute_path: [
                    Raw(
                     PartRaw {
                      content: "div",
                      span: Span {
                       start: Position {
                        line: 256,
                        column: 44,
                       },
                       end: Position {
                        line: 256,
                        column: 47,
                       },
                      },
                     },
                    ),
                   ],
                   default: None,
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "base",
                    span: Span {
                     start: Position {
                      line: 256,
                      column: 48,
                     },
                     end: Position {
                      line: 256,
                      column: 52,
                     },
                    },
                   },
                  ),
                  Identifier(
                   Identifier {
                    id: "int",
                    span: Span {
                     start: Position {
                      line: 256,
                      column: 53,
                     },
                     end: Position {
                      line: 256,
                      column: 56,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
              },
             ),
            },
           ),
           span: Span {
            start: Position {
             line: 256,
             column: 15,
            },
            end: Position {
             line: 256,
             column: 58,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 256,
           column: 9,
          },
          end: Position {
           line: 256,
           column: 58,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "compare",
          span: Span {
           start: Position {
            line: 267,
            column: 3,
           },
           end: Position {
            line: 267,
            column: 10,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "a",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "b",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: BinaryOperation(
              BinaryOperation {
               left: Identifier(
                Identifier {
                 id: "a",
                 span: Span {
                  start: Position {
                   line: 268,
                   column: 8,
                  },
                  end: Position {
                   line: 268,
                   column: 9,
                  },
                 },
                },
               ),
               operator: LessThan,
               right: Identifier(
                Identifier {
                 id: "b",
                 span: Span {
                  start: Position {
                   line: 268,
                   column: 12,
                  },
                  end: Position {
                   line: 268,
                   column: 13,
                  },
                 },
                },
               ),
              },
             ),
             then: UnaryOperation(
              UnaryOperation {
               operator: Negate,
               operand: Integer(
                Integer {
                 value: "1",
                 span: Span {
                  start: Position {
                   line: 269,
                   column: 11,
                  },
                  end: Position {
                   line: 269,
                   column: 12,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 269,
                 column: 10,
                },
                end: Position {
                 line: 269,
                 column: 12,
                },
               },
              },
             ),
             else_: IfThenElse(
              IfThenElse {
               predicate: BinaryOperation(
                BinaryOperation {
                 left: Identifier(
                  Identifier {
                   id: "a",
                   span: Span {
                    start: Position {
                     line: 270,
                     column: 13,
                    },
                    end: Position {
                     line: 270,
                     column: 14,
                    },
                   },
                  },
                 ),
                 operator: GreaterThan,
                 right: Identifier(
                  Identifier {
                   id: "b",
                   span: Span {
                    start: Position {
                     line: 270,
                     column: 17,
                    },
                    end: Position {
                     line: 270,
                     column: 18,
                    },
                   },
                  },
                 ),
                },
               ),
               then: Integer(
                Integer {
                 value: "1",
                 span: Span {
                  start: Position {
                   line: 271,
                   column: 15,
                  },
                  end: Position {
                   line: 271,
                   column: 16,
                  },
                 },
                },
               ),
               else_: Integer(
                Integer {
                 value: "0",
                 span: Span {
                  start: Position {
                   line: 272,
                   column: 15,
                  },
                  end: Position {
                   line: 272,
                   column: 16,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 270,
                 column: 10,
                },
                end: Position {
                 line: 272,
                 column: 16,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 268,
               column: 5,
              },
              end: Position {
               line: 272,
               column: 16,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 267,
             column: 16,
            },
            end: Position {
             line: 272,
             column: 16,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 267,
           column: 13,
          },
          end: Position {
           line: 272,
           column: 16,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "splitByAndCompare",
          span: Span {
           start: Position {
            line: 292,
            column: 3,
           },
           end: Position {
            line: 292,
            column: 20,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "p",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "yes",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "no",
              },
             ),
             body: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "a",
                },
               ),
               body: Function(
                Function {
                 head: Simple(
                  FunctionHeadSimple {
                   identifier: "b",
                  },
                 ),
                 body: IfThenElse(
                  IfThenElse {
                   predicate: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "p",
                       span: Span {
                        start: Position {
                         line: 303,
                         column: 8,
                        },
                        end: Position {
                         line: 303,
                         column: 9,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "a",
                        span: Span {
                         start: Position {
                          line: 303,
                          column: 10,
                         },
                         end: Position {
                          line: 303,
                          column: 11,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   then: IfThenElse(
                    IfThenElse {
                     predicate: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "p",
                         span: Span {
                          start: Position {
                           line: 304,
                           column: 13,
                          },
                          end: Position {
                           line: 304,
                           column: 14,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "b",
                          span: Span {
                           start: Position {
                            line: 304,
                            column: 15,
                           },
                           end: Position {
                            line: 304,
                            column: 16,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     then: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "yes",
                         span: Span {
                          start: Position {
                           line: 304,
                           column: 22,
                          },
                          end: Position {
                           line: 304,
                           column: 25,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "a",
                          span: Span {
                           start: Position {
                            line: 304,
                            column: 26,
                           },
                           end: Position {
                            line: 304,
                            column: 27,
                           },
                          },
                         },
                        ),
                        Identifier(
                         Identifier {
                          id: "b",
                          span: Span {
                           start: Position {
                            line: 304,
                            column: 28,
                           },
                           end: Position {
                            line: 304,
                            column: 29,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     else_: UnaryOperation(
                      UnaryOperation {
                       operator: Negate,
                       operand: Integer(
                        Integer {
                         value: "1",
                         span: Span {
                          start: Position {
                           line: 304,
                           column: 36,
                          },
                          end: Position {
                           line: 304,
                           column: 37,
                          },
                         },
                        },
                       ),
                       span: Span {
                        start: Position {
                         line: 304,
                         column: 35,
                        },
                        end: Position {
                         line: 304,
                         column: 37,
                        },
                       },
                      },
                     ),
                     span: Span {
                      start: Position {
                       line: 304,
                       column: 10,
                      },
                      end: Position {
                       line: 304,
                       column: 37,
                      },
                     },
                    },
                   ),
                   else_: IfThenElse(
                    IfThenElse {
                     predicate: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "p",
                         span: Span {
                          start: Position {
                           line: 305,
                           column: 13,
                          },
                          end: Position {
                           line: 305,
                           column: 14,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "b",
                          span: Span {
                           start: Position {
                            line: 305,
                            column: 15,
                           },
                           end: Position {
                            line: 305,
                            column: 16,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     then: Integer(
                      Integer {
                       value: "1",
                       span: Span {
                        start: Position {
                         line: 305,
                         column: 22,
                        },
                        end: Position {
                         line: 305,
                         column: 23,
                        },
                       },
                      },
                     ),
                     else_: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "no",
                         span: Span {
                          start: Position {
                           line: 305,
                           column: 29,
                          },
                          end: Position {
                           line: 305,
                           column: 31,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "a",
                          span: Span {
                           start: Position {
                            line: 305,
                            column: 32,
                           },
                           end: Position {
                            line: 305,
                            column: 33,
                           },
                          },
                         },
                        ),
                        Identifier(
                         Identifier {
                          id: "b",
                          span: Span {
                           start: Position {
                            line: 305,
                            column: 34,
                           },
                           end: Position {
                            line: 305,
                            column: 35,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     span: Span {
                      start: Position {
                       line: 305,
                       column: 10,
                      },
                      end: Position {
                       line: 305,
                       column: 35,
                      },
                     },
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 303,
                     column: 5,
                    },
                    end: Position {
                     line: 305,
                     column: 35,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 302,
                   column: 5,
                  },
                  end: Position {
                   line: 305,
                   column: 35,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 300,
                 column: 5,
                },
                end: Position {
                 line: 305,
                 column: 35,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 298,
               column: 5,
              },
              end: Position {
               line: 305,
               column: 35,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 296,
             column: 5,
            },
            end: Position {
             line: 305,
             column: 35,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 294,
           column: 5,
          },
          end: Position {
           line: 305,
           column: 35,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "importJSON",
          span: Span {
           start: Position {
            line: 312,
            column: 3,
           },
           end: Position {
            line: 312,
            column: 13,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "path",
          },
         ),
         body: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "builtins",
               span: Span {
                start: Position {
                 line: 313,
                 column: 5,
                },
                end: Position {
                 line: 313,
                 column: 13,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "fromJSON",
                span: Span {
                 start: Position {
                  line: 313,
                  column: 14,
                 },
                 end: Position {
                  line: 313,
                  column: 22,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            FunctionApplication(
             FunctionApplication {
              function: PropertyAccess(
               PropertyAccess {
                expression: Identifier(
                 Identifier {
                  id: "builtins",
                  span: Span {
                   start: Position {
                    line: 313,
                    column: 24,
                   },
                   end: Position {
                    line: 313,
                    column: 32,
                   },
                  },
                 },
                ),
                attribute_path: [
                 Raw(
                  PartRaw {
                   content: "readFile",
                   span: Span {
                    start: Position {
                     line: 313,
                     column: 33,
                    },
                    end: Position {
                     line: 313,
                     column: 41,
                    },
                   },
                  },
                 ),
                ],
                default: None,
               },
              ),
              arguments: [
               Identifier(
                Identifier {
                 id: "path",
                 span: Span {
                  start: Position {
                   line: 313,
                   column: 42,
                  },
                  end: Position {
                   line: 313,
                   column: 46,
                  },
                 },
                },
               ),
              ],
             },
            ),
           ],
          },
         ),
         span: Span {
          start: Position {
           line: 312,
           column: 16,
          },
          end: Position {
           line: 313,
           column: 47,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "importTOML",
          span: Span {
           start: Position {
            line: 319,
            column: 3,
           },
           end: Position {
            line: 319,
            column: 13,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "path",
          },
         ),
         body: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "builtins",
               span: Span {
                start: Position {
                 line: 320,
                 column: 5,
                },
                end: Position {
                 line: 320,
                 column: 13,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "fromTOML",
                span: Span {
                 start: Position {
                  line: 320,
                  column: 14,
                 },
                 end: Position {
                  line: 320,
                  column: 22,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            FunctionApplication(
             FunctionApplication {
              function: PropertyAccess(
               PropertyAccess {
                expression: Identifier(
                 Identifier {
                  id: "builtins",
                  span: Span {
                   start: Position {
                    line: 320,
                    column: 24,
                   },
                   end: Position {
                    line: 320,
                    column: 32,
                   },
                  },
                 },
                ),
                attribute_path: [
                 Raw(
                  PartRaw {
                   content: "readFile",
                   span: Span {
                    start: Position {
                     line: 320,
                     column: 33,
                    },
                    end: Position {
                     line: 320,
                     column: 41,
                    },
                   },
                  },
                 ),
                ],
                default: None,
               },
              ),
              arguments: [
               Identifier(
                Identifier {
                 id: "path",
                 span: Span {
                  start: Position {
                   line: 320,
                   column: 42,
                  },
                  end: Position {
                   line: 320,
                   column: 46,
                  },
                 },
                },
               ),
              ],
             },
            ),
           ],
          },
         ),
         span: Span {
          start: Position {
           line: 319,
           column: 16,
          },
          end: Position {
           line: 320,
           column: 47,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "warn",
          span: Span {
           start: Position {
            line: 347,
            column: 3,
           },
           end: Position {
            line: 347,
            column: 7,
           },
          },
         },
        ),
       ],
       to: IfThenElse(
        IfThenElse {
         predicate: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "lib",
               span: Span {
                start: Position {
                 line: 348,
                 column: 8,
                },
                end: Position {
                 line: 348,
                 column: 11,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "elem",
                span: Span {
                 start: Position {
                  line: 348,
                  column: 12,
                 },
                 end: Position {
                  line: 348,
                  column: 16,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            FunctionApplication(
             FunctionApplication {
              function: PropertyAccess(
               PropertyAccess {
                expression: Identifier(
                 Identifier {
                  id: "builtins",
                  span: Span {
                   start: Position {
                    line: 348,
                    column: 18,
                   },
                   end: Position {
                    line: 348,
                    column: 26,
                   },
                  },
                 },
                ),
                attribute_path: [
                 Raw(
                  PartRaw {
                   content: "getEnv",
                   span: Span {
                    start: Position {
                     line: 348,
                     column: 27,
                    },
                    end: Position {
                     line: 348,
                     column: 33,
                    },
                   },
                  },
                 ),
                ],
                default: None,
               },
              ),
              arguments: [
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "NIX_ABORT_ON_WARN",
                    span: Span {
                     start: Position {
                      line: 348,
                      column: 35,
                     },
                     end: Position {
                      line: 348,
                      column: 52,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 348,
                   column: 34,
                  },
                  end: Position {
                   line: 348,
                   column: 53,
                  },
                 },
                },
               ),
              ],
             },
            ),
            List(
             List {
              elements: [
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "1",
                    span: Span {
                     start: Position {
                      line: 348,
                      column: 57,
                     },
                     end: Position {
                      line: 348,
                      column: 58,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 348,
                   column: 56,
                  },
                  end: Position {
                   line: 348,
                   column: 59,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "true",
                    span: Span {
                     start: Position {
                      line: 348,
                      column: 61,
                     },
                     end: Position {
                      line: 348,
                      column: 65,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 348,
                   column: 60,
                  },
                  end: Position {
                   line: 348,
                   column: 66,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "yes",
                    span: Span {
                     start: Position {
                      line: 348,
                      column: 68,
                     },
                     end: Position {
                      line: 348,
                      column: 71,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 348,
                   column: 67,
                  },
                  end: Position {
                   line: 348,
                   column: 72,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 348,
                column: 55,
               },
               end: Position {
                line: 348,
                column: 73,
               },
              },
             },
            ),
           ],
          },
         ),
         then: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "msg",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "builtins",
                 span: Span {
                  start: Position {
                   line: 349,
                   column: 15,
                  },
                  end: Position {
                   line: 349,
                   column: 23,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "trace",
                  span: Span {
                   start: Position {
                    line: 349,
                    column: 24,
                   },
                   end: Position {
                    line: 349,
                    column: 29,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              String(
               String_ {
                parts: [
                 Raw(
                  PartRaw {
                   content: "\u{1b}[1;31mwarning: ",
                   span: Span {
                    start: Position {
                     line: 349,
                     column: 31,
                    },
                    end: Position {
                     line: 349,
                     column: 53,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "msg",
                     span: Span {
                      start: Position {
                       line: 349,
                       column: 49,
                      },
                      end: Position {
                       line: 349,
                       column: 52,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "\u{1b}[0m",
                   span: Span {
                    start: Position {
                     line: 349,
                     column: 31,
                    },
                    end: Position {
                     line: 349,
                     column: 57,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 349,
                  column: 30,
                 },
                 end: Position {
                  line: 349,
                  column: 58,
                 },
                },
               },
              ),
              FunctionApplication(
               FunctionApplication {
                function: Identifier(
                 Identifier {
                  id: "abort",
                  span: Span {
                   start: Position {
                    line: 349,
                    column: 60,
                   },
                   end: Position {
                    line: 349,
                    column: 65,
                   },
                  },
                 },
                ),
                arguments: [
                 String(
                  String_ {
                   parts: [
                    Raw(
                     PartRaw {
                      content: "NIX_ABORT_ON_WARN=true; warnings are treated as unrecoverable errors.",
                      span: Span {
                       start: Position {
                        line: 349,
                        column: 67,
                       },
                       end: Position {
                        line: 349,
                        column: 136,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 349,
                     column: 66,
                    },
                    end: Position {
                     line: 349,
                     column: 137,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 349,
             column: 10,
            },
            end: Position {
             line: 349,
             column: 138,
            },
           },
          },
         ),
         else_: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "msg",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "builtins",
                 span: Span {
                  start: Position {
                   line: 350,
                   column: 15,
                  },
                  end: Position {
                   line: 350,
                   column: 23,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "trace",
                  span: Span {
                   start: Position {
                    line: 350,
                    column: 24,
                   },
                   end: Position {
                    line: 350,
                    column: 29,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              String(
               String_ {
                parts: [
                 Raw(
                  PartRaw {
                   content: "\u{1b}[1;31mwarning: ",
                   span: Span {
                    start: Position {
                     line: 350,
                     column: 31,
                    },
                    end: Position {
                     line: 350,
                     column: 53,
                    },
                   },
                  },
                 ),
                 Interpolation(
                  PartInterpolation {
                   expression: Identifier(
                    Identifier {
                     id: "msg",
                     span: Span {
                      start: Position {
                       line: 350,
                       column: 49,
                      },
                      end: Position {
                       line: 350,
                       column: 52,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 Raw(
                  PartRaw {
                   content: "\u{1b}[0m",
                   span: Span {
                    start: Position {
                     line: 350,
                     column: 31,
                    },
                    end: Position {
                     line: 350,
                     column: 57,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 350,
                  column: 30,
                 },
                 end: Position {
                  line: 350,
                  column: 58,
                 },
                },
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 350,
             column: 10,
            },
            end: Position {
             line: 350,
             column: 58,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 348,
           column: 5,
          },
          end: Position {
           line: 350,
           column: 58,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "warnIf",
          span: Span {
           start: Position {
            line: 357,
            column: 3,
           },
           end: Position {
            line: 357,
            column: 9,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "cond",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "msg",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: Identifier(
              Identifier {
               id: "cond",
               span: Span {
                start: Position {
                 line: 357,
                 column: 26,
                },
                end: Position {
                 line: 357,
                 column: 30,
                },
               },
              },
             ),
             then: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "warn",
                 span: Span {
                  start: Position {
                   line: 357,
                   column: 36,
                  },
                  end: Position {
                   line: 357,
                   column: 40,
                  },
                 },
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "msg",
                  span: Span {
                   start: Position {
                    line: 357,
                    column: 41,
                   },
                   end: Position {
                    line: 357,
                    column: 44,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             else_: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "x",
                },
               ),
               body: Identifier(
                Identifier {
                 id: "x",
                 span: Span {
                  start: Position {
                   line: 357,
                   column: 53,
                  },
                  end: Position {
                   line: 357,
                   column: 54,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 357,
                 column: 50,
                },
                end: Position {
                 line: 357,
                 column: 54,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 357,
               column: 23,
              },
              end: Position {
               line: 357,
               column: 54,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 357,
             column: 18,
            },
            end: Position {
             line: 357,
             column: 54,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 357,
           column: 12,
          },
          end: Position {
           line: 357,
           column: 54,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "warnIfNot",
          span: Span {
           start: Position {
            line: 364,
            column: 3,
           },
           end: Position {
            line: 364,
            column: 12,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "cond",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "msg",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: Identifier(
              Identifier {
               id: "cond",
               span: Span {
                start: Position {
                 line: 364,
                 column: 29,
                },
                end: Position {
                 line: 364,
                 column: 33,
                },
               },
              },
             ),
             then: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "x",
                },
               ),
               body: Identifier(
                Identifier {
                 id: "x",
                 span: Span {
                  start: Position {
                   line: 364,
                   column: 42,
                  },
                  end: Position {
                   line: 364,
                   column: 43,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 364,
                 column: 39,
                },
                end: Position {
                 line: 364,
                 column: 43,
                },
               },
              },
             ),
             else_: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "warn",
                 span: Span {
                  start: Position {
                   line: 364,
                   column: 49,
                  },
                  end: Position {
                   line: 364,
                   column: 53,
                  },
                 },
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "msg",
                  span: Span {
                   start: Position {
                    line: 364,
                    column: 54,
                   },
                   end: Position {
                    line: 364,
                    column: 57,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 364,
               column: 26,
              },
              end: Position {
               line: 364,
               column: 57,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 364,
             column: 21,
            },
            end: Position {
             line: 364,
             column: 57,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 364,
           column: 15,
          },
          end: Position {
           line: 364,
           column: 57,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "throwIfNot",
          span: Span {
           start: Position {
            line: 386,
            column: 3,
           },
           end: Position {
            line: 386,
            column: 13,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "cond",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "msg",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: Identifier(
              Identifier {
               id: "cond",
               span: Span {
                start: Position {
                 line: 386,
                 column: 30,
                },
                end: Position {
                 line: 386,
                 column: 34,
                },
               },
              },
             ),
             then: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "x",
                },
               ),
               body: Identifier(
                Identifier {
                 id: "x",
                 span: Span {
                  start: Position {
                   line: 386,
                   column: 43,
                  },
                  end: Position {
                   line: 386,
                   column: 44,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 386,
                 column: 40,
                },
                end: Position {
                 line: 386,
                 column: 44,
                },
               },
              },
             ),
             else_: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "throw",
                 span: Span {
                  start: Position {
                   line: 386,
                   column: 50,
                  },
                  end: Position {
                   line: 386,
                   column: 55,
                  },
                 },
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "msg",
                  span: Span {
                   start: Position {
                    line: 386,
                    column: 56,
                   },
                   end: Position {
                    line: 386,
                    column: 59,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 386,
               column: 27,
              },
              end: Position {
               line: 386,
               column: 59,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 386,
             column: 22,
            },
            end: Position {
             line: 386,
             column: 59,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 386,
           column: 16,
          },
          end: Position {
           line: 386,
           column: 59,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "throwIf",
          span: Span {
           start: Position {
            line: 393,
            column: 3,
           },
           end: Position {
            line: 393,
            column: 10,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "cond",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "msg",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: Identifier(
              Identifier {
               id: "cond",
               span: Span {
                start: Position {
                 line: 393,
                 column: 27,
                },
                end: Position {
                 line: 393,
                 column: 31,
                },
               },
              },
             ),
             then: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "throw",
                 span: Span {
                  start: Position {
                   line: 393,
                   column: 37,
                  },
                  end: Position {
                   line: 393,
                   column: 42,
                  },
                 },
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "msg",
                  span: Span {
                   start: Position {
                    line: 393,
                    column: 43,
                   },
                   end: Position {
                    line: 393,
                    column: 46,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             else_: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "x",
                },
               ),
               body: Identifier(
                Identifier {
                 id: "x",
                 span: Span {
                  start: Position {
                   line: 393,
                   column: 55,
                  },
                  end: Position {
                   line: 393,
                   column: 56,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 393,
                 column: 52,
                },
                end: Position {
                 line: 393,
                 column: 56,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 393,
               column: 24,
              },
              end: Position {
               line: 393,
               column: 56,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 393,
             column: 19,
            },
            end: Position {
             line: 393,
             column: 56,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 393,
           column: 13,
          },
          end: Position {
           line: 393,
           column: 56,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "checkListOfEnum",
          span: Span {
           start: Position {
            line: 405,
            column: 3,
           },
           end: Position {
            line: 405,
            column: 18,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "msg",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "valid",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "given",
              },
             ),
             body: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "unexpected",
                     span: Span {
                      start: Position {
                       line: 407,
                       column: 7,
                      },
                      end: Position {
                       line: 407,
                       column: 17,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "lib",
                        span: Span {
                         start: Position {
                          line: 407,
                          column: 20,
                         },
                         end: Position {
                          line: 407,
                          column: 23,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "subtractLists",
                         span: Span {
                          start: Position {
                           line: 407,
                           column: 24,
                          },
                          end: Position {
                           line: 407,
                           column: 37,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "valid",
                       span: Span {
                        start: Position {
                         line: 407,
                         column: 38,
                        },
                        end: Position {
                         line: 407,
                         column: 43,
                        },
                       },
                      },
                     ),
                     Identifier(
                      Identifier {
                       id: "given",
                       span: Span {
                        start: Position {
                         line: 407,
                         column: 44,
                        },
                        end: Position {
                         line: 407,
                         column: 49,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
               ],
               target: FunctionApplication(
                FunctionApplication {
                 function: PropertyAccess(
                  PropertyAccess {
                   expression: Identifier(
                    Identifier {
                     id: "lib",
                     span: Span {
                      start: Position {
                       line: 409,
                       column: 7,
                      },
                      end: Position {
                       line: 409,
                       column: 10,
                      },
                     },
                    },
                   ),
                   attribute_path: [
                    Raw(
                     PartRaw {
                      content: "throwIfNot",
                      span: Span {
                       start: Position {
                        line: 409,
                        column: 11,
                       },
                       end: Position {
                        line: 409,
                        column: 21,
                       },
                      },
                     },
                    ),
                   ],
                   default: None,
                  },
                 ),
                 arguments: [
                  BinaryOperation(
                   BinaryOperation {
                    left: Identifier(
                     Identifier {
                      id: "unexpected",
                      span: Span {
                       start: Position {
                        line: 409,
                        column: 23,
                       },
                       end: Position {
                        line: 409,
                        column: 33,
                       },
                      },
                     },
                    ),
                    operator: EqualTo,
                    right: List(
                     List {
                      elements: [],
                      span: Span {
                       start: Position {
                        line: 409,
                        column: 37,
                       },
                       end: Position {
                        line: 409,
                        column: 39,
                       },
                      },
                     },
                    ),
                   },
                  ),
                  String(
                   String_ {
                    parts: [
                     Interpolation(
                      PartInterpolation {
                       expression: Identifier(
                        Identifier {
                         id: "msg",
                         span: Span {
                          start: Position {
                           line: 410,
                           column: 12,
                          },
                          end: Position {
                           line: 410,
                           column: 15,
                          },
                         },
                        },
                       ),
                      },
                     ),
                     Raw(
                      PartRaw {
                       content: ": ",
                       span: Span {
                        start: Position {
                         line: 410,
                         column: 10,
                        },
                        end: Position {
                         line: 410,
                         column: 18,
                        },
                       },
                      },
                     ),
                     Interpolation(
                      PartInterpolation {
                       expression: FunctionApplication(
                        FunctionApplication {
                         function: PropertyAccess(
                          PropertyAccess {
                           expression: Identifier(
                            Identifier {
                             id: "builtins",
                             span: Span {
                              start: Position {
                               line: 410,
                               column: 20,
                              },
                              end: Position {
                               line: 410,
                               column: 28,
                              },
                             },
                            },
                           ),
                           attribute_path: [
                            Raw(
                             PartRaw {
                              content: "concatStringsSep",
                              span: Span {
                               start: Position {
                                line: 410,
                                column: 29,
                               },
                               end: Position {
                                line: 410,
                                column: 45,
                               },
                              },
                             },
                            ),
                           ],
                           default: None,
                          },
                         ),
                         arguments: [
                          String(
                           String_ {
                            parts: [
                             Raw(
                              PartRaw {
                               content: ", ",
                               span: Span {
                                start: Position {
                                 line: 410,
                                 column: 47,
                                },
                                end: Position {
                                 line: 410,
                                 column: 49,
                                },
                               },
                              },
                             ),
                            ],
                            span: Span {
                             start: Position {
                              line: 410,
                              column: 46,
                             },
                             end: Position {
                              line: 410,
                              column: 50,
                             },
                            },
                           },
                          ),
                          FunctionApplication(
                           FunctionApplication {
                            function: PropertyAccess(
                             PropertyAccess {
                              expression: Identifier(
                               Identifier {
                                id: "builtins",
                                span: Span {
                                 start: Position {
                                  line: 410,
                                  column: 52,
                                 },
                                 end: Position {
                                  line: 410,
                                  column: 60,
                                 },
                                },
                               },
                              ),
                              attribute_path: [
                               Raw(
                                PartRaw {
                                 content: "map",
                                 span: Span {
                                  start: Position {
                                   line: 410,
                                   column: 61,
                                  },
                                  end: Position {
                                   line: 410,
                                   column: 64,
                                  },
                                 },
                                },
                               ),
                              ],
                              default: None,
                             },
                            ),
                            arguments: [
                             PropertyAccess(
                              PropertyAccess {
                               expression: Identifier(
                                Identifier {
                                 id: "builtins",
                                 span: Span {
                                  start: Position {
                                   line: 410,
                                   column: 65,
                                  },
                                  end: Position {
                                   line: 410,
                                   column: 73,
                                  },
                                 },
                                },
                               ),
                               attribute_path: [
                                Raw(
                                 PartRaw {
                                  content: "toString",
                                  span: Span {
                                   start: Position {
                                    line: 410,
                                    column: 74,
                                   },
                                   end: Position {
                                    line: 410,
                                    column: 82,
                                   },
                                  },
                                 },
                                ),
                               ],
                               default: None,
                              },
                             ),
                             Identifier(
                              Identifier {
                               id: "unexpected",
                               span: Span {
                                start: Position {
                                 line: 410,
                                 column: 83,
                                },
                                end: Position {
                                 line: 410,
                                 column: 93,
                                },
                               },
                              },
                             ),
                            ],
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     Raw(
                      PartRaw {
                       content: " unexpected; valid ones: ",
                       span: Span {
                        start: Position {
                         line: 410,
                         column: 10,
                        },
                        end: Position {
                         line: 410,
                         column: 120,
                        },
                       },
                      },
                     ),
                     Interpolation(
                      PartInterpolation {
                       expression: FunctionApplication(
                        FunctionApplication {
                         function: PropertyAccess(
                          PropertyAccess {
                           expression: Identifier(
                            Identifier {
                             id: "builtins",
                             span: Span {
                              start: Position {
                               line: 410,
                               column: 122,
                              },
                              end: Position {
                               line: 410,
                               column: 130,
                              },
                             },
                            },
                           ),
                           attribute_path: [
                            Raw(
                             PartRaw {
                              content: "concatStringsSep",
                              span: Span {
                               start: Position {
                                line: 410,
                                column: 131,
                               },
                               end: Position {
                                line: 410,
                                column: 147,
                               },
                              },
                             },
                            ),
                           ],
                           default: None,
                          },
                         ),
                         arguments: [
                          String(
                           String_ {
                            parts: [
                             Raw(
                              PartRaw {
                               content: ", ",
                               span: Span {
                                start: Position {
                                 line: 410,
                                 column: 149,
                                },
                                end: Position {
                                 line: 410,
                                 column: 151,
                                },
                               },
                              },
                             ),
                            ],
                            span: Span {
                             start: Position {
                              line: 410,
                              column: 148,
                             },
                             end: Position {
                              line: 410,
                              column: 152,
                             },
                            },
                           },
                          ),
                          FunctionApplication(
                           FunctionApplication {
                            function: PropertyAccess(
                             PropertyAccess {
                              expression: Identifier(
                               Identifier {
                                id: "builtins",
                                span: Span {
                                 start: Position {
                                  line: 410,
                                  column: 154,
                                 },
                                 end: Position {
                                  line: 410,
                                  column: 162,
                                 },
                                },
                               },
                              ),
                              attribute_path: [
                               Raw(
                                PartRaw {
                                 content: "map",
                                 span: Span {
                                  start: Position {
                                   line: 410,
                                   column: 163,
                                  },
                                  end: Position {
                                   line: 410,
                                   column: 166,
                                  },
                                 },
                                },
                               ),
                              ],
                              default: None,
                             },
                            ),
                            arguments: [
                             PropertyAccess(
                              PropertyAccess {
                               expression: Identifier(
                                Identifier {
                                 id: "builtins",
                                 span: Span {
                                  start: Position {
                                   line: 410,
                                   column: 167,
                                  },
                                  end: Position {
                                   line: 410,
                                   column: 175,
                                  },
                                 },
                                },
                               ),
                               attribute_path: [
                                Raw(
                                 PartRaw {
                                  content: "toString",
                                  span: Span {
                                   start: Position {
                                    line: 410,
                                    column: 176,
                                   },
                                   end: Position {
                                    line: 410,
                                    column: 184,
                                   },
                                  },
                                 },
                                ),
                               ],
                               default: None,
                              },
                             ),
                             Identifier(
                              Identifier {
                               id: "valid",
                               span: Span {
                                start: Position {
                                 line: 410,
                                 column: 185,
                                },
                                end: Position {
                                 line: 410,
                                 column: 190,
                                },
                               },
                              },
                             ),
                            ],
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                    ],
                    span: Span {
                     start: Position {
                      line: 410,
                      column: 9,
                     },
                     end: Position {
                      line: 410,
                      column: 193,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 406,
                 column: 5,
                },
                end: Position {
                 line: 410,
                 column: 193,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 405,
               column: 33,
              },
              end: Position {
               line: 410,
               column: 193,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 405,
             column: 26,
            },
            end: Position {
             line: 410,
             column: 193,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 405,
           column: 21,
          },
          end: Position {
           line: 410,
           column: 193,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "info",
          span: Span {
           start: Position {
            line: 412,
            column: 3,
           },
           end: Position {
            line: 412,
            column: 7,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "msg",
          },
         ),
         body: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "builtins",
               span: Span {
                start: Position {
                 line: 412,
                 column: 15,
                },
                end: Position {
                 line: 412,
                 column: 23,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "trace",
                span: Span {
                 start: Position {
                  line: 412,
                  column: 24,
                 },
                 end: Position {
                  line: 412,
                  column: 29,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "INFO: ",
                 span: Span {
                  start: Position {
                   line: 412,
                   column: 31,
                  },
                  end: Position {
                   line: 412,
                   column: 43,
                  },
                 },
                },
               ),
               Interpolation(
                PartInterpolation {
                 expression: Identifier(
                  Identifier {
                   id: "msg",
                   span: Span {
                    start: Position {
                     line: 412,
                     column: 39,
                    },
                    end: Position {
                     line: 412,
                     column: 42,
                    },
                   },
                  },
                 ),
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 412,
                column: 30,
               },
               end: Position {
                line: 412,
                column: 44,
               },
              },
             },
            ),
           ],
          },
         ),
         span: Span {
          start: Position {
           line: 412,
           column: 10,
          },
          end: Position {
           line: 412,
           column: 44,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "showWarnings",
          span: Span {
           start: Position {
            line: 414,
            column: 3,
           },
           end: Position {
            line: 414,
            column: 15,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "warnings",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "res",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "lib",
                 span: Span {
                  start: Position {
                   line: 414,
                   column: 33,
                  },
                  end: Position {
                   line: 414,
                   column: 36,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "foldr",
                  span: Span {
                   start: Position {
                    line: 414,
                    column: 37,
                   },
                   end: Position {
                    line: 414,
                    column: 42,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              Function(
               Function {
                head: Simple(
                 FunctionHeadSimple {
                  identifier: "w",
                 },
                ),
                body: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "x",
                   },
                  ),
                  body: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "warn",
                      span: Span {
                       start: Position {
                        line: 414,
                        column: 50,
                       },
                       end: Position {
                        line: 414,
                        column: 54,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "w",
                       span: Span {
                        start: Position {
                         line: 414,
                         column: 55,
                        },
                        end: Position {
                         line: 414,
                         column: 56,
                        },
                       },
                      },
                     ),
                     Identifier(
                      Identifier {
                       id: "x",
                       span: Span {
                        start: Position {
                         line: 414,
                         column: 57,
                        },
                        end: Position {
                         line: 414,
                         column: 58,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 414,
                    column: 47,
                   },
                   end: Position {
                    line: 414,
                    column: 58,
                   },
                  },
                 },
                ),
                span: Span {
                 start: Position {
                  line: 414,
                  column: 44,
                 },
                 end: Position {
                  line: 414,
                  column: 58,
                 },
                },
               },
              ),
              Identifier(
               Identifier {
                id: "res",
                span: Span {
                 start: Position {
                  line: 414,
                  column: 60,
                 },
                 end: Position {
                  line: 414,
                  column: 63,
                 },
                },
               },
              ),
              Identifier(
               Identifier {
                id: "warnings",
                span: Span {
                 start: Position {
                  line: 414,
                  column: 64,
                 },
                 end: Position {
                  line: 414,
                  column: 72,
                 },
                },
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 414,
             column: 28,
            },
            end: Position {
             line: 414,
             column: 72,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 414,
           column: 18,
          },
          end: Position {
           line: 414,
           column: 72,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "setFunctionArgs",
          span: Span {
           start: Position {
            line: 428,
            column: 3,
           },
           end: Position {
            line: 428,
            column: 18,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "f",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "args",
            },
           ),
           body: Map(
            Map {
             recursive: false,
             bindings: [
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "__functor",
                   span: Span {
                    start: Position {
                     line: 430,
                     column: 7,
                    },
                    end: Position {
                     line: 430,
                     column: 16,
                    },
                   },
                  },
                 ),
                ],
                to: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "self",
                   },
                  ),
                  body: Identifier(
                   Identifier {
                    id: "f",
                    span: Span {
                     start: Position {
                      line: 430,
                      column: 25,
                     },
                     end: Position {
                      line: 430,
                      column: 26,
                     },
                    },
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 430,
                    column: 19,
                   },
                   end: Position {
                    line: 430,
                    column: 26,
                   },
                  },
                 },
                ),
               },
              ),
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "__functionArgs",
                   span: Span {
                    start: Position {
                     line: 431,
                     column: 7,
                    },
                    end: Position {
                     line: 431,
                     column: 21,
                    },
                   },
                  },
                 ),
                ],
                to: Identifier(
                 Identifier {
                  id: "args",
                  span: Span {
                   start: Position {
                    line: 431,
                    column: 24,
                   },
                   end: Position {
                    line: 431,
                    column: 28,
                   },
                  },
                 },
                ),
               },
              ),
             ],
             span: Span {
              start: Position {
               line: 429,
               column: 5,
              },
              end: Position {
               line: 432,
               column: 6,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 428,
             column: 24,
            },
            end: Position {
             line: 432,
             column: 6,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 428,
           column: 21,
          },
          end: Position {
           line: 432,
           column: 6,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "functionArgs",
          span: Span {
           start: Position {
            line: 440,
            column: 3,
           },
           end: Position {
            line: 440,
            column: 15,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "f",
          },
         ),
         body: IfThenElse(
          IfThenElse {
           predicate: HasAttribute(
            HasAttribute {
             expression: Identifier(
              Identifier {
               id: "f",
               span: Span {
                start: Position {
                 line: 441,
                 column: 8,
                },
                end: Position {
                 line: 441,
                 column: 9,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "__functor",
                span: Span {
                 start: Position {
                  line: 441,
                  column: 12,
                 },
                 end: Position {
                  line: 441,
                  column: 21,
                 },
                },
               },
              ),
             ],
            },
           ),
           then: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "f",
               span: Span {
                start: Position {
                 line: 442,
                 column: 10,
                },
                end: Position {
                 line: 442,
                 column: 11,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "__functionArgs",
                span: Span {
                 start: Position {
                  line: 442,
                  column: 12,
                 },
                 end: Position {
                  line: 442,
                  column: 26,
                 },
                },
               },
              ),
             ],
             default: Some(
              FunctionApplication(
               FunctionApplication {
                function: PropertyAccess(
                 PropertyAccess {
                  expression: Identifier(
                   Identifier {
                    id: "lib",
                    span: Span {
                     start: Position {
                      line: 442,
                      column: 31,
                     },
                     end: Position {
                      line: 442,
                      column: 34,
                     },
                    },
                   },
                  ),
                  attribute_path: [
                   Raw(
                    PartRaw {
                     content: "functionArgs",
                     span: Span {
                      start: Position {
                       line: 442,
                       column: 35,
                      },
                      end: Position {
                       line: 442,
                       column: 47,
                      },
                     },
                    },
                   ),
                  ],
                  default: None,
                 },
                ),
                arguments: [
                 FunctionApplication(
                  FunctionApplication {
                   function: PropertyAccess(
                    PropertyAccess {
                     expression: Identifier(
                      Identifier {
                       id: "f",
                       span: Span {
                        start: Position {
                         line: 442,
                         column: 49,
                        },
                        end: Position {
                         line: 442,
                         column: 50,
                        },
                       },
                      },
                     ),
                     attribute_path: [
                      Raw(
                       PartRaw {
                        content: "__functor",
                        span: Span {
                         start: Position {
                          line: 442,
                          column: 51,
                         },
                         end: Position {
                          line: 442,
                          column: 60,
                         },
                        },
                       },
                      ),
                     ],
                     default: None,
                    },
                   ),
                   arguments: [
                    Identifier(
                     Identifier {
                      id: "f",
                      span: Span {
                       start: Position {
                        line: 442,
                        column: 61,
                       },
                       end: Position {
                        line: 442,
                        column: 62,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                ],
               },
              ),
             ),
            },
           ),
           else_: FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "builtins",
                 span: Span {
                  start: Position {
                   line: 443,
                   column: 10,
                  },
                  end: Position {
                   line: 443,
                   column: 18,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "functionArgs",
                  span: Span {
                   start: Position {
                    line: 443,
                    column: 19,
                   },
                   end: Position {
                    line: 443,
                    column: 31,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              Identifier(
               Identifier {
                id: "f",
                span: Span {
                 start: Position {
                  line: 443,
                  column: 32,
                 },
                 end: Position {
                  line: 443,
                  column: 33,
                 },
                },
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 441,
             column: 5,
            },
            end: Position {
             line: 443,
             column: 33,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 440,
           column: 18,
          },
          end: Position {
           line: 443,
           column: 33,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "isFunction",
          span: Span {
           start: Position {
            line: 448,
            column: 3,
           },
           end: Position {
            line: 448,
            column: 13,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "f",
          },
         ),
         body: BinaryOperation(
          BinaryOperation {
           left: FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "builtins",
                 span: Span {
                  start: Position {
                   line: 448,
                   column: 19,
                  },
                  end: Position {
                   line: 448,
                   column: 27,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "isFunction",
                  span: Span {
                   start: Position {
                    line: 448,
                    column: 28,
                   },
                   end: Position {
                    line: 448,
                    column: 38,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              Identifier(
               Identifier {
                id: "f",
                span: Span {
                 start: Position {
                  line: 448,
                  column: 39,
                 },
                 end: Position {
                  line: 448,
                  column: 40,
                 },
                },
               },
              ),
             ],
            },
           ),
           operator: LogicalOr,
           right: BinaryOperation(
            BinaryOperation {
             left: HasAttribute(
              HasAttribute {
               expression: Identifier(
                Identifier {
                 id: "f",
                 span: Span {
                  start: Position {
                   line: 449,
                   column: 6,
                  },
                  end: Position {
                   line: 449,
                   column: 7,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "__functor",
                  span: Span {
                   start: Position {
                    line: 449,
                    column: 10,
                   },
                   end: Position {
                    line: 449,
                    column: 19,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             operator: LogicalAnd,
             right: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "isFunction",
                 span: Span {
                  start: Position {
                   line: 449,
                   column: 23,
                  },
                  end: Position {
                   line: 449,
                   column: 33,
                  },
                 },
                },
               ),
               arguments: [
                FunctionApplication(
                 FunctionApplication {
                  function: PropertyAccess(
                   PropertyAccess {
                    expression: Identifier(
                     Identifier {
                      id: "f",
                      span: Span {
                       start: Position {
                        line: 449,
                        column: 35,
                       },
                       end: Position {
                        line: 449,
                        column: 36,
                       },
                      },
                     },
                    ),
                    attribute_path: [
                     Raw(
                      PartRaw {
                       content: "__functor",
                       span: Span {
                        start: Position {
                         line: 449,
                         column: 37,
                        },
                        end: Position {
                         line: 449,
                         column: 46,
                        },
                       },
                      },
                     ),
                    ],
                    default: None,
                   },
                  ),
                  arguments: [
                   Identifier(
                    Identifier {
                     id: "f",
                     span: Span {
                      start: Position {
                       line: 449,
                       column: 47,
                      },
                      end: Position {
                       line: 449,
                       column: 48,
                      },
                     },
                    },
                   ),
                  ],
                 },
                ),
               ],
              },
             ),
            },
           ),
          },
         ),
         span: Span {
          start: Position {
           line: 448,
           column: 16,
          },
          end: Position {
           line: 449,
           column: 50,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "toFunction",
          span: Span {
           start: Position {
            line: 463,
            column: 3,
           },
           end: Position {
            line: 463,
            column: 13,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "v",
          },
         ),
         body: IfThenElse(
          IfThenElse {
           predicate: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "isFunction",
               span: Span {
                start: Position {
                 line: 466,
                 column: 8,
                },
                end: Position {
                 line: 466,
                 column: 18,
                },
               },
              },
             ),
             arguments: [
              Identifier(
               Identifier {
                id: "v",
                span: Span {
                 start: Position {
                  line: 466,
                  column: 19,
                 },
                 end: Position {
                  line: 466,
                  column: 20,
                 },
                },
               },
              ),
             ],
            },
           ),
           then: Identifier(
            Identifier {
             id: "v",
             span: Span {
              start: Position {
               line: 467,
               column: 10,
              },
              end: Position {
               line: 467,
               column: 11,
              },
             },
            },
           ),
           else_: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "k",
              },
             ),
             body: Identifier(
              Identifier {
               id: "v",
               span: Span {
                start: Position {
                 line: 468,
                 column: 13,
                },
                end: Position {
                 line: 468,
                 column: 14,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 468,
               column: 10,
              },
              end: Position {
               line: 468,
               column: 14,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 466,
             column: 5,
            },
            end: Position {
             line: 468,
             column: 14,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 465,
           column: 5,
          },
          end: Position {
           line: 468,
           column: 14,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "toHexString",
          span: Span {
           start: Position {
            line: 479,
            column: 3,
           },
           end: Position {
            line: 479,
            column: 14,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "i",
          },
         ),
         body: LetIn(
          LetIn {
           bindings: [
            KeyValue(
             BindingKeyValue {
              from: [
               Raw(
                PartRaw {
                 content: "toHexDigit",
                 span: Span {
                  start: Position {
                   line: 481,
                   column: 7,
                  },
                  end: Position {
                   line: 481,
                   column: 17,
                  },
                 },
                },
               ),
              ],
              to: Function(
               Function {
                head: Simple(
                 FunctionHeadSimple {
                  identifier: "d",
                 },
                ),
                body: IfThenElse(
                 IfThenElse {
                  predicate: BinaryOperation(
                   BinaryOperation {
                    left: Identifier(
                     Identifier {
                      id: "d",
                      span: Span {
                       start: Position {
                        line: 482,
                        column: 12,
                       },
                       end: Position {
                        line: 482,
                        column: 13,
                       },
                      },
                     },
                    ),
                    operator: LessThan,
                    right: Integer(
                     Integer {
                      value: "10",
                      span: Span {
                       start: Position {
                        line: 482,
                        column: 16,
                       },
                       end: Position {
                        line: 482,
                        column: 18,
                       },
                      },
                     },
                    ),
                   },
                  ),
                  then: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "toString",
                      span: Span {
                       start: Position {
                        line: 483,
                        column: 14,
                       },
                       end: Position {
                        line: 483,
                        column: 22,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "d",
                       span: Span {
                        start: Position {
                         line: 483,
                         column: 23,
                        },
                        end: Position {
                         line: 483,
                         column: 24,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                  else_: PropertyAccess(
                   PropertyAccess {
                    expression: Map(
                     Map {
                      recursive: false,
                      bindings: [
                       KeyValue(
                        BindingKeyValue {
                         from: [
                          Expression(
                           PartExpression {
                            expression: String(
                             String_ {
                              parts: [
                               Raw(
                                PartRaw {
                                 content: "10",
                                 span: Span {
                                  start: Position {
                                   line: 486,
                                   column: 14,
                                  },
                                  end: Position {
                                   line: 486,
                                   column: 16,
                                  },
                                 },
                                },
                               ),
                              ],
                              span: Span {
                               start: Position {
                                line: 486,
                                column: 13,
                               },
                               end: Position {
                                line: 486,
                                column: 17,
                               },
                              },
                             },
                            ),
                           },
                          ),
                         ],
                         to: String(
                          String_ {
                           parts: [
                            Raw(
                             PartRaw {
                              content: "A",
                              span: Span {
                               start: Position {
                                line: 486,
                                column: 21,
                               },
                               end: Position {
                                line: 486,
                                column: 22,
                               },
                              },
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 486,
                             column: 20,
                            },
                            end: Position {
                             line: 486,
                             column: 23,
                            },
                           },
                          },
                         ),
                        },
                       ),
                       KeyValue(
                        BindingKeyValue {
                         from: [
                          Expression(
                           PartExpression {
                            expression: String(
                             String_ {
                              parts: [
                               Raw(
                                PartRaw {
                                 content: "11",
                                 span: Span {
                                  start: Position {
                                   line: 487,
                                   column: 14,
                                  },
                                  end: Position {
                                   line: 487,
                                   column: 16,
                                  },
                                 },
                                },
                               ),
                              ],
                              span: Span {
                               start: Position {
                                line: 487,
                                column: 13,
                               },
                               end: Position {
                                line: 487,
                                column: 17,
                               },
                              },
                             },
                            ),
                           },
                          ),
                         ],
                         to: String(
                          String_ {
                           parts: [
                            Raw(
                             PartRaw {
                              content: "B",
                              span: Span {
                               start: Position {
                                line: 487,
                                column: 21,
                               },
                               end: Position {
                                line: 487,
                                column: 22,
                               },
                              },
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 487,
                             column: 20,
                            },
                            end: Position {
                             line: 487,
                             column: 23,
                            },
                           },
                          },
                         ),
                        },
                       ),
                       KeyValue(
                        BindingKeyValue {
                         from: [
                          Expression(
                           PartExpression {
                            expression: String(
                             String_ {
                              parts: [
                               Raw(
                                PartRaw {
                                 content: "12",
                                 span: Span {
                                  start: Position {
                                   line: 488,
                                   column: 14,
                                  },
                                  end: Position {
                                   line: 488,
                                   column: 16,
                                  },
                                 },
                                },
                               ),
                              ],
                              span: Span {
                               start: Position {
                                line: 488,
                                column: 13,
                               },
                               end: Position {
                                line: 488,
                                column: 17,
                               },
                              },
                             },
                            ),
                           },
                          ),
                         ],
                         to: String(
                          String_ {
                           parts: [
                            Raw(
                             PartRaw {
                              content: "C",
                              span: Span {
                               start: Position {
                                line: 488,
                                column: 21,
                               },
                               end: Position {
                                line: 488,
                                column: 22,
                               },
                              },
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 488,
                             column: 20,
                            },
                            end: Position {
                             line: 488,
                             column: 23,
                            },
                           },
                          },
                         ),
                        },
                       ),
                       KeyValue(
                        BindingKeyValue {
                         from: [
                          Expression(
                           PartExpression {
                            expression: String(
                             String_ {
                              parts: [
                               Raw(
                                PartRaw {
                                 content: "13",
                                 span: Span {
                                  start: Position {
                                   line: 489,
                                   column: 14,
                                  },
                                  end: Position {
                                   line: 489,
                                   column: 16,
                                  },
                                 },
                                },
                               ),
                              ],
                              span: Span {
                               start: Position {
                                line: 489,
                                column: 13,
                               },
                               end: Position {
                                line: 489,
                                column: 17,
                               },
                              },
                             },
                            ),
                           },
                          ),
                         ],
                         to: String(
                          String_ {
                           parts: [
                            Raw(
                             PartRaw {
                              content: "D",
                              span: Span {
                               start: Position {
                                line: 489,
                                column: 21,
                               },
                               end: Position {
                                line: 489,
                                column: 22,
                               },
                              },
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 489,
                             column: 20,
                            },
                            end: Position {
                             line: 489,
                             column: 23,
                            },
                           },
                          },
                         ),
                        },
                       ),
                       KeyValue(
                        BindingKeyValue {
                         from: [
                          Expression(
                           PartExpression {
                            expression: String(
                             String_ {
                              parts: [
                               Raw(
                                PartRaw {
                                 content: "14",
                                 span: Span {
                                  start: Position {
                                   line: 490,
                                   column: 14,
                                  },
                                  end: Position {
                                   line: 490,
                                   column: 16,
                                  },
                                 },
                                },
                               ),
                              ],
                              span: Span {
                               start: Position {
                                line: 490,
                                column: 13,
                               },
                               end: Position {
                                line: 490,
                                column: 17,
                               },
                              },
                             },
                            ),
                           },
                          ),
                         ],
                         to: String(
                          String_ {
                           parts: [
                            Raw(
                             PartRaw {
                              content: "E",
                              span: Span {
                               start: Position {
                                line: 490,
                                column: 21,
                               },
                               end: Position {
                                line: 490,
                                column: 22,
                               },
                              },
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 490,
                             column: 20,
                            },
                            end: Position {
                             line: 490,
                             column: 23,
                            },
                           },
                          },
                         ),
                        },
                       ),
                       KeyValue(
                        BindingKeyValue {
                         from: [
                          Expression(
                           PartExpression {
                            expression: String(
                             String_ {
                              parts: [
                               Raw(
                                PartRaw {
                                 content: "15",
                                 span: Span {
                                  start: Position {
                                   line: 491,
                                   column: 14,
                                  },
                                  end: Position {
                                   line: 491,
                                   column: 16,
                                  },
                                 },
                                },
                               ),
                              ],
                              span: Span {
                               start: Position {
                                line: 491,
                                column: 13,
                               },
                               end: Position {
                                line: 491,
                                column: 17,
                               },
                              },
                             },
                            ),
                           },
                          ),
                         ],
                         to: String(
                          String_ {
                           parts: [
                            Raw(
                             PartRaw {
                              content: "F",
                              span: Span {
                               start: Position {
                                line: 491,
                                column: 21,
                               },
                               end: Position {
                                line: 491,
                                column: 22,
                               },
                              },
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 491,
                             column: 20,
                            },
                            end: Position {
                             line: 491,
                             column: 23,
                            },
                           },
                          },
                         ),
                        },
                       ),
                      ],
                      span: Span {
                       start: Position {
                        line: 485,
                        column: 11,
                       },
                       end: Position {
                        line: 492,
                        column: 12,
                       },
                      },
                     },
                    ),
                    attribute_path: [
                     Interpolation(
                      PartInterpolation {
                       expression: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "toString",
                           span: Span {
                            start: Position {
                             line: 492,
                             column: 15,
                            },
                            end: Position {
                             line: 492,
                             column: 23,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Identifier(
                           Identifier {
                            id: "d",
                            span: Span {
                             start: Position {
                              line: 492,
                              column: 24,
                             },
                             end: Position {
                              line: 492,
                              column: 25,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                    ],
                    default: None,
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 482,
                    column: 9,
                   },
                   end: Position {
                    line: 492,
                    column: 26,
                   },
                  },
                 },
                ),
                span: Span {
                 start: Position {
                  line: 481,
                  column: 20,
                 },
                 end: Position {
                  line: 492,
                  column: 26,
                 },
                },
               },
              ),
             },
            ),
           ],
           target: FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "lib",
                 span: Span {
                  start: Position {
                   line: 494,
                   column: 7,
                  },
                  end: Position {
                   line: 494,
                   column: 10,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "concatMapStrings",
                  span: Span {
                   start: Position {
                    line: 494,
                    column: 11,
                   },
                   end: Position {
                    line: 494,
                    column: 27,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              Identifier(
               Identifier {
                id: "toHexDigit",
                span: Span {
                 start: Position {
                  line: 494,
                  column: 28,
                 },
                 end: Position {
                  line: 494,
                  column: 38,
                 },
                },
               },
              ),
              FunctionApplication(
               FunctionApplication {
                function: Identifier(
                 Identifier {
                  id: "toBaseDigits",
                  span: Span {
                   start: Position {
                    line: 494,
                    column: 40,
                   },
                   end: Position {
                    line: 494,
                    column: 52,
                   },
                  },
                 },
                ),
                arguments: [
                 Integer(
                  Integer {
                   value: "16",
                   span: Span {
                    start: Position {
                     line: 494,
                     column: 53,
                    },
                    end: Position {
                     line: 494,
                     column: 55,
                    },
                   },
                  },
                 ),
                 Identifier(
                  Identifier {
                   id: "i",
                   span: Span {
                    start: Position {
                     line: 494,
                     column: 56,
                    },
                    end: Position {
                     line: 494,
                     column: 57,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 480,
             column: 5,
            },
            end: Position {
             line: 494,
             column: 58,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 479,
           column: 17,
          },
          end: Position {
           line: 494,
           column: 58,
          },
         },
        },
       ),
      },
     ),
     KeyValue(
      BindingKeyValue {
       from: [
        Raw(
         PartRaw {
          content: "toBaseDigits",
          span: Span {
           start: Position {
            line: 505,
            column: 3,
           },
           end: Position {
            line: 505,
            column: 15,
           },
          },
         },
        ),
       ],
       to: Function(
        Function {
         head: Simple(
          FunctionHeadSimple {
           identifier: "base",
          },
         ),
         body: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "i",
            },
           ),
           body: LetIn(
            LetIn {
             bindings: [
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "go",
                   span: Span {
                    start: Position {
                     line: 507,
                     column: 7,
                    },
                    end: Position {
                     line: 507,
                     column: 9,
                    },
                   },
                  },
                 ),
                ],
                to: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "i",
                   },
                  ),
                  body: IfThenElse(
                   IfThenElse {
                    predicate: BinaryOperation(
                     BinaryOperation {
                      left: Identifier(
                       Identifier {
                        id: "i",
                        span: Span {
                         start: Position {
                          line: 508,
                          column: 12,
                         },
                         end: Position {
                          line: 508,
                          column: 13,
                         },
                        },
                       },
                      ),
                      operator: LessThan,
                      right: Identifier(
                       Identifier {
                        id: "base",
                        span: Span {
                         start: Position {
                          line: 508,
                          column: 16,
                         },
                         end: Position {
                          line: 508,
                          column: 20,
                         },
                        },
                       },
                      ),
                     },
                    ),
                    then: List(
                     List {
                      elements: [
                       Identifier(
                        Identifier {
                         id: "i",
                         span: Span {
                          start: Position {
                           line: 509,
                           column: 15,
                          },
                          end: Position {
                           line: 509,
                           column: 16,
                          },
                         },
                        },
                       ),
                      ],
                      span: Span {
                       start: Position {
                        line: 509,
                        column: 14,
                       },
                       end: Position {
                        line: 509,
                        column: 17,
                       },
                      },
                     },
                    ),
                    else_: LetIn(
                     LetIn {
                      bindings: [
                       KeyValue(
                        BindingKeyValue {
                         from: [
                          Raw(
                           PartRaw {
                            content: "r",
                            span: Span {
                             start: Position {
                              line: 512,
                              column: 13,
                             },
                             end: Position {
                              line: 512,
                              column: 14,
                             },
                            },
                           },
                          ),
                         ],
                         to: BinaryOperation(
                          BinaryOperation {
                           left: Identifier(
                            Identifier {
                             id: "i",
                             span: Span {
                              start: Position {
                               line: 512,
                               column: 17,
                              },
                              end: Position {
                               line: 512,
                               column: 18,
                              },
                             },
                            },
                           ),
                           operator: Subtraction,
                           right: BinaryOperation(
                            BinaryOperation {
                             left: BinaryOperation(
                              BinaryOperation {
                               left: Identifier(
                                Identifier {
                                 id: "i",
                                 span: Span {
                                  start: Position {
                                   line: 512,
                                   column: 23,
                                  },
                                  end: Position {
                                   line: 512,
                                   column: 24,
                                  },
                                 },
                                },
                               ),
                               operator: Division,
                               right: Identifier(
                                Identifier {
                                 id: "base",
                                 span: Span {
                                  start: Position {
                                   line: 512,
                                   column: 27,
                                  },
                                  end: Position {
                                   line: 512,
                                   column: 31,
                                  },
                                 },
                                },
                               ),
                              },
                             ),
                             operator: Multiplication,
                             right: Identifier(
                              Identifier {
                               id: "base",
                               span: Span {
                                start: Position {
                                 line: 512,
                                 column: 35,
                                },
                                end: Position {
                                 line: 512,
                                 column: 39,
                                },
                               },
                              },
                             ),
                            },
                           ),
                          },
                         ),
                        },
                       ),
                       KeyValue(
                        BindingKeyValue {
                         from: [
                          Raw(
                           PartRaw {
                            content: "q",
                            span: Span {
                             start: Position {
                              line: 513,
                              column: 13,
                             },
                             end: Position {
                              line: 513,
                              column: 14,
                             },
                            },
                           },
                          ),
                         ],
                         to: BinaryOperation(
                          BinaryOperation {
                           left: BinaryOperation(
                            BinaryOperation {
                             left: Identifier(
                              Identifier {
                               id: "i",
                               span: Span {
                                start: Position {
                                 line: 513,
                                 column: 18,
                                },
                                end: Position {
                                 line: 513,
                                 column: 19,
                                },
                               },
                              },
                             ),
                             operator: Subtraction,
                             right: Identifier(
                              Identifier {
                               id: "r",
                               span: Span {
                                start: Position {
                                 line: 513,
                                 column: 22,
                                },
                                end: Position {
                                 line: 513,
                                 column: 23,
                                },
                               },
                              },
                             ),
                            },
                           ),
                           operator: Division,
                           right: Identifier(
                            Identifier {
                             id: "base",
                             span: Span {
                              start: Position {
                               line: 513,
                               column: 27,
                              },
                              end: Position {
                               line: 513,
                               column: 31,
                              },
                             },
                            },
                           ),
                          },
                         ),
                        },
                       ),
                      ],
                      target: BinaryOperation(
                       BinaryOperation {
                        left: List(
                         List {
                          elements: [
                           Identifier(
                            Identifier {
                             id: "r",
                             span: Span {
                              start: Position {
                               line: 515,
                               column: 14,
                              },
                              end: Position {
                               line: 515,
                               column: 15,
                              },
                             },
                            },
                           ),
                          ],
                          span: Span {
                           start: Position {
                            line: 515,
                            column: 13,
                           },
                           end: Position {
                            line: 515,
                            column: 16,
                           },
                          },
                         },
                        ),
                        operator: Concatenation,
                        right: FunctionApplication(
                         FunctionApplication {
                          function: Identifier(
                           Identifier {
                            id: "go",
                            span: Span {
                             start: Position {
                              line: 515,
                              column: 20,
                             },
                             end: Position {
                              line: 515,
                              column: 22,
                             },
                            },
                           },
                          ),
                          arguments: [
                           Identifier(
                            Identifier {
                             id: "q",
                             span: Span {
                              start: Position {
                               line: 515,
                               column: 23,
                              },
                              end: Position {
                               line: 515,
                               column: 24,
                              },
                             },
                            },
                           ),
                          ],
                         },
                        ),
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 511,
                        column: 11,
                       },
                       end: Position {
                        line: 515,
                        column: 24,
                       },
                      },
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 508,
                      column: 9,
                     },
                     end: Position {
                      line: 515,
                      column: 24,
                     },
                    },
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 507,
                    column: 12,
                   },
                   end: Position {
                    line: 515,
                    column: 24,
                   },
                  },
                 },
                ),
               },
              ),
             ],
             target: Assert(
              Assert {
               expression: BinaryOperation(
                BinaryOperation {
                 left: Identifier(
                  Identifier {
                   id: "base",
                   span: Span {
                    start: Position {
                     line: 517,
                     column: 15,
                    },
                    end: Position {
                     line: 517,
                     column: 19,
                    },
                   },
                  },
                 ),
                 operator: GreaterThanOrEqualTo,
                 right: Integer(
                  Integer {
                   value: "2",
                   span: Span {
                    start: Position {
                     line: 517,
                     column: 23,
                    },
                    end: Position {
                     line: 517,
                     column: 24,
                    },
                   },
                  },
                 ),
                },
               ),
               target: Assert(
                Assert {
                 expression: BinaryOperation(
                  BinaryOperation {
                   left: Identifier(
                    Identifier {
                     id: "i",
                     span: Span {
                      start: Position {
                       line: 518,
                       column: 15,
                      },
                      end: Position {
                       line: 518,
                       column: 16,
                      },
                     },
                    },
                   ),
                   operator: GreaterThanOrEqualTo,
                   right: Integer(
                    Integer {
                     value: "0",
                     span: Span {
                      start: Position {
                       line: 518,
                       column: 20,
                      },
                      end: Position {
                       line: 518,
                       column: 21,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 target: FunctionApplication(
                  FunctionApplication {
                   function: PropertyAccess(
                    PropertyAccess {
                     expression: Identifier(
                      Identifier {
                       id: "lib",
                       span: Span {
                        start: Position {
                         line: 519,
                         column: 7,
                        },
                        end: Position {
                         line: 519,
                         column: 10,
                        },
                       },
                      },
                     ),
                     attribute_path: [
                      Raw(
                       PartRaw {
                        content: "reverseList",
                        span: Span {
                         start: Position {
                          line: 519,
                          column: 11,
                         },
                         end: Position {
                          line: 519,
                          column: 22,
                         },
                        },
                       },
                      ),
                     ],
                     default: None,
                    },
                   ),
                   arguments: [
                    FunctionApplication(
                     FunctionApplication {
                      function: Identifier(
                       Identifier {
                        id: "go",
                        span: Span {
                         start: Position {
                          line: 519,
                          column: 24,
                         },
                         end: Position {
                          line: 519,
                          column: 26,
                         },
                        },
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "i",
                         span: Span {
                          start: Position {
                           line: 519,
                           column: 27,
                          },
                          end: Position {
                           line: 519,
                           column: 28,
                          },
                         },
                        },
                       ),
                      ],
                     },
                    ),
                   ],
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 518,
                   column: 7,
                  },
                  end: Position {
                   line: 519,
                   column: 29,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 517,
                 column: 7,
                },
                end: Position {
                 line: 519,
                 column: 29,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 506,
               column: 5,
              },
              end: Position {
               line: 519,
               column: 29,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 505,
             column: 24,
            },
            end: Position {
             line: 519,
             column: 29,
            },
           },
          },
         ),
         span: Span {
          start: Position {
           line: 505,
           column: 18,
          },
          end: Position {
           line: 519,
           column: 29,
          },
         },
        },
       ),
      },
     ),
    ],
    span: Span {
     start: Position {
      line: 3,
      column: 1,
     },
     end: Position {
      line: 520,
      column: 2,
     },
    },
   },
  ),
  span: Span {
   start: Position {
    line: 1,
    column: 1,
   },
   end: Position {
    line: 520,
    column: 2,
   },
  },
 },
)