Function(
 Function {
  head: Destructured(
   FunctionHeadDestructured {
    ellipsis: false,
    identifier: None,
    arguments: [
     FunctionHeadDestructuredArgument {
      identifier: "lib",
      default: None,
     },
    ],
   },
  ),
  body: LetIn(
   LetIn {
    bindings: [
     Inherit(
      BindingInherit {
       from: Some(
        Identifier(
         Identifier {
          id: "builtins",
          span: Span {
           start: Position {
            line: 5,
            column: 10,
           },
           end: Position {
            line: 5,
            column: 18,
           },
          },
         },
        ),
       ),
       attributes: [
        Raw(
         PartRaw {
          content: "length",
          span: Span {
           start: Position {
            line: 5,
            column: 20,
           },
           end: Position {
            line: 5,
            column: 26,
           },
          },
         },
        ),
       ],
       span: Span {
        start: Position {
         line: 3,
         column: 4,
        },
        end: Position {
         line: 5,
         column: 27,
        },
       },
      },
     ),
    ],
    target: Map(
     Map {
      recursive: true,
      bindings: [
       Inherit(
        BindingInherit {
         from: Some(
          Identifier(
           Identifier {
            id: "builtins",
            span: Span {
             start: Position {
              line: 11,
              column: 12,
             },
             end: Position {
              line: 11,
              column: 20,
             },
            },
           },
          ),
         ),
         attributes: [
          Raw(
           PartRaw {
            content: "compareVersions",
            span: Span {
             start: Position {
              line: 12,
              column: 5,
             },
             end: Position {
              line: 12,
              column: 20,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "elem",
            span: Span {
             start: Position {
              line: 13,
              column: 5,
             },
             end: Position {
              line: 13,
              column: 9,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "elemAt",
            span: Span {
             start: Position {
              line: 14,
              column: 5,
             },
             end: Position {
              line: 14,
              column: 11,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "filter",
            span: Span {
             start: Position {
              line: 15,
              column: 5,
             },
             end: Position {
              line: 15,
              column: 11,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "fromJSON",
            span: Span {
             start: Position {
              line: 16,
              column: 5,
             },
             end: Position {
              line: 16,
              column: 13,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "head",
            span: Span {
             start: Position {
              line: 17,
              column: 5,
             },
             end: Position {
              line: 17,
              column: 9,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "isInt",
            span: Span {
             start: Position {
              line: 18,
              column: 5,
             },
             end: Position {
              line: 18,
              column: 10,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "isList",
            span: Span {
             start: Position {
              line: 19,
              column: 5,
             },
             end: Position {
              line: 19,
              column: 11,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "isAttrs",
            span: Span {
             start: Position {
              line: 20,
              column: 5,
             },
             end: Position {
              line: 20,
              column: 12,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "isString",
            span: Span {
             start: Position {
              line: 21,
              column: 5,
             },
             end: Position {
              line: 21,
              column: 13,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "match",
            span: Span {
             start: Position {
              line: 22,
              column: 5,
             },
             end: Position {
              line: 22,
              column: 10,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "parseDrvName",
            span: Span {
             start: Position {
              line: 23,
              column: 5,
             },
             end: Position {
              line: 23,
              column: 17,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "readFile",
            span: Span {
             start: Position {
              line: 24,
              column: 5,
             },
             end: Position {
              line: 24,
              column: 13,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "replaceStrings",
            span: Span {
             start: Position {
              line: 25,
              column: 5,
             },
             end: Position {
              line: 25,
              column: 19,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "split",
            span: Span {
             start: Position {
              line: 26,
              column: 5,
             },
             end: Position {
              line: 26,
              column: 10,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "storeDir",
            span: Span {
             start: Position {
              line: 27,
              column: 5,
             },
             end: Position {
              line: 27,
              column: 13,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "stringLength",
            span: Span {
             start: Position {
              line: 28,
              column: 5,
             },
             end: Position {
              line: 28,
              column: 17,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "substring",
            span: Span {
             start: Position {
              line: 29,
              column: 5,
             },
             end: Position {
              line: 29,
              column: 14,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "tail",
            span: Span {
             start: Position {
              line: 30,
              column: 5,
             },
             end: Position {
              line: 30,
              column: 9,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "toJSON",
            span: Span {
             start: Position {
              line: 31,
              column: 5,
             },
             end: Position {
              line: 31,
              column: 11,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "typeOf",
            span: Span {
             start: Position {
              line: 32,
              column: 5,
             },
             end: Position {
              line: 32,
              column: 11,
             },
            },
           },
          ),
          Raw(
           PartRaw {
            content: "unsafeDiscardStringContext",
            span: Span {
             start: Position {
              line: 33,
              column: 5,
             },
             end: Position {
              line: 33,
              column: 31,
             },
            },
           },
          ),
         ],
         span: Span {
          start: Position {
           line: 9,
           column: 6,
          },
          end: Position {
           line: 34,
           column: 6,
          },
         },
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "concatStrings",
            span: Span {
             start: Position {
              line: 44,
              column: 3,
             },
             end: Position {
              line: 44,
              column: 16,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "builtins",
               span: Span {
                start: Position {
                 line: 44,
                 column: 19,
                },
                end: Position {
                 line: 44,
                 column: 27,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "concatStringsSep",
                span: Span {
                 start: Position {
                  line: 44,
                  column: 28,
                 },
                 end: Position {
                  line: 44,
                  column: 44,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [],
              span: Span {
               start: Position {
                line: 44,
                column: 45,
               },
               end: Position {
                line: 44,
                column: 47,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "concatMapStrings",
            span: Span {
             start: Position {
              line: 54,
              column: 3,
             },
             end: Position {
              line: 54,
              column: 19,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "f",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "list",
              },
             ),
             body: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "concatStrings",
                 span: Span {
                  start: Position {
                   line: 54,
                   column: 31,
                  },
                  end: Position {
                   line: 54,
                   column: 44,
                  },
                 },
                },
               ),
               arguments: [
                FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "map",
                    span: Span {
                     start: Position {
                      line: 54,
                      column: 46,
                     },
                     end: Position {
                      line: 54,
                      column: 49,
                     },
                    },
                   },
                  ),
                  arguments: [
                   Identifier(
                    Identifier {
                     id: "f",
                     span: Span {
                      start: Position {
                       line: 54,
                       column: 50,
                      },
                      end: Position {
                       line: 54,
                       column: 51,
                      },
                     },
                    },
                   ),
                   Identifier(
                    Identifier {
                     id: "list",
                     span: Span {
                      start: Position {
                       line: 54,
                       column: 52,
                      },
                      end: Position {
                       line: 54,
                       column: 56,
                      },
                     },
                    },
                   ),
                  ],
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 54,
               column: 25,
              },
              end: Position {
               line: 54,
               column: 57,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 54,
             column: 22,
            },
            end: Position {
             line: 54,
             column: 57,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "concatImapStrings",
            span: Span {
             start: Position {
              line: 65,
              column: 3,
             },
             end: Position {
              line: 65,
              column: 20,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "f",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "list",
              },
             ),
             body: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "concatStrings",
                 span: Span {
                  start: Position {
                   line: 65,
                   column: 32,
                  },
                  end: Position {
                   line: 65,
                   column: 45,
                  },
                 },
                },
               ),
               arguments: [
                FunctionApplication(
                 FunctionApplication {
                  function: PropertyAccess(
                   PropertyAccess {
                    expression: Identifier(
                     Identifier {
                      id: "lib",
                      span: Span {
                       start: Position {
                        line: 65,
                        column: 47,
                       },
                       end: Position {
                        line: 65,
                        column: 50,
                       },
                      },
                     },
                    ),
                    attribute_path: [
                     Raw(
                      PartRaw {
                       content: "imap1",
                       span: Span {
                        start: Position {
                         line: 65,
                         column: 51,
                        },
                        end: Position {
                         line: 65,
                         column: 56,
                        },
                       },
                      },
                     ),
                    ],
                    default: None,
                   },
                  ),
                  arguments: [
                   Identifier(
                    Identifier {
                     id: "f",
                     span: Span {
                      start: Position {
                       line: 65,
                       column: 57,
                      },
                      end: Position {
                       line: 65,
                       column: 58,
                      },
                     },
                    },
                   ),
                   Identifier(
                    Identifier {
                     id: "list",
                     span: Span {
                      start: Position {
                       line: 65,
                       column: 59,
                      },
                      end: Position {
                       line: 65,
                       column: 63,
                      },
                     },
                    },
                   ),
                  ],
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 65,
               column: 26,
              },
              end: Position {
               line: 65,
               column: 64,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 65,
             column: 23,
            },
            end: Position {
             line: 65,
             column: 64,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "intersperse",
            span: Span {
             start: Position {
              line: 75,
              column: 3,
             },
             end: Position {
              line: 75,
              column: 14,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "separator",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "list",
              },
             ),
             body: IfThenElse(
              IfThenElse {
               predicate: BinaryOperation(
                BinaryOperation {
                 left: BinaryOperation(
                  BinaryOperation {
                   left: Identifier(
                    Identifier {
                     id: "list",
                     span: Span {
                      start: Position {
                       line: 80,
                       column: 8,
                      },
                      end: Position {
                       line: 80,
                       column: 12,
                      },
                     },
                    },
                   ),
                   operator: EqualTo,
                   right: List(
                    List {
                     elements: [],
                     span: Span {
                      start: Position {
                       line: 80,
                       column: 16,
                      },
                      end: Position {
                       line: 80,
                       column: 18,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 operator: LogicalOr,
                 right: BinaryOperation(
                  BinaryOperation {
                   left: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "length",
                       span: Span {
                        start: Position {
                         line: 80,
                         column: 22,
                        },
                        end: Position {
                         line: 80,
                         column: 28,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "list",
                        span: Span {
                         start: Position {
                          line: 80,
                          column: 29,
                         },
                         end: Position {
                          line: 80,
                          column: 33,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   operator: EqualTo,
                   right: Integer(
                    Integer {
                     value: "1",
                     span: Span {
                      start: Position {
                       line: 80,
                       column: 37,
                      },
                      end: Position {
                       line: 80,
                       column: 38,
                      },
                     },
                    },
                   ),
                  },
                 ),
                },
               ),
               then: Identifier(
                Identifier {
                 id: "list",
                 span: Span {
                  start: Position {
                   line: 81,
                   column: 10,
                  },
                  end: Position {
                   line: 81,
                   column: 14,
                  },
                 },
                },
               ),
               else_: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "tail",
                   span: Span {
                    start: Position {
                     line: 82,
                     column: 10,
                    },
                    end: Position {
                     line: 82,
                     column: 14,
                    },
                   },
                  },
                 ),
                 arguments: [
                  FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "lib",
                        span: Span {
                         start: Position {
                          line: 82,
                          column: 16,
                         },
                         end: Position {
                          line: 82,
                          column: 19,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "concatMap",
                         span: Span {
                          start: Position {
                           line: 82,
                           column: 20,
                          },
                          end: Position {
                           line: 82,
                           column: 29,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     Function(
                      Function {
                       head: Simple(
                        FunctionHeadSimple {
                         identifier: "x",
                        },
                       ),
                       body: List(
                        List {
                         elements: [
                          Identifier(
                           Identifier {
                            id: "separator",
                            span: Span {
                             start: Position {
                              line: 82,
                              column: 35,
                             },
                             end: Position {
                              line: 82,
                              column: 44,
                             },
                            },
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "x",
                            span: Span {
                             start: Position {
                              line: 82,
                              column: 45,
                             },
                             end: Position {
                              line: 82,
                              column: 46,
                             },
                            },
                           },
                          ),
                         ],
                         span: Span {
                          start: Position {
                           line: 82,
                           column: 34,
                          },
                          end: Position {
                           line: 82,
                           column: 47,
                          },
                         },
                        },
                       ),
                       span: Span {
                        start: Position {
                         line: 82,
                         column: 31,
                        },
                        end: Position {
                         line: 82,
                         column: 47,
                        },
                       },
                      },
                     ),
                     Identifier(
                      Identifier {
                       id: "list",
                       span: Span {
                        start: Position {
                         line: 82,
                         column: 49,
                        },
                        end: Position {
                         line: 82,
                         column: 53,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 80,
                 column: 5,
                },
                end: Position {
                 line: 82,
                 column: 54,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 79,
               column: 5,
              },
              end: Position {
               line: 82,
               column: 54,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 77,
             column: 5,
            },
            end: Position {
             line: 82,
             column: 54,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "concatStringsSep",
            span: Span {
             start: Position {
              line: 92,
              column: 3,
             },
             end: Position {
              line: 92,
              column: 19,
             },
            },
           },
          ),
         ],
         to: PropertyAccess(
          PropertyAccess {
           expression: Identifier(
            Identifier {
             id: "builtins",
             span: Span {
              start: Position {
               line: 92,
               column: 22,
              },
              end: Position {
               line: 92,
               column: 30,
              },
             },
            },
           ),
           attribute_path: [
            Raw(
             PartRaw {
              content: "concatStringsSep",
              span: Span {
               start: Position {
                line: 92,
                column: 31,
               },
               end: Position {
                line: 92,
                column: 47,
               },
              },
             },
            ),
           ],
           default: Some(
            Function(
             Function {
              head: Simple(
               FunctionHeadSimple {
                identifier: "separator",
               },
              ),
              body: Function(
               Function {
                head: Simple(
                 FunctionHeadSimple {
                  identifier: "list",
                 },
                ),
                body: FunctionApplication(
                 FunctionApplication {
                  function: PropertyAccess(
                   PropertyAccess {
                    expression: Identifier(
                     Identifier {
                      id: "lib",
                      span: Span {
                       start: Position {
                        line: 93,
                        column: 5,
                       },
                       end: Position {
                        line: 93,
                        column: 8,
                       },
                      },
                     },
                    ),
                    attribute_path: [
                     Raw(
                      PartRaw {
                       content: "foldl'",
                       span: Span {
                        start: Position {
                         line: 93,
                         column: 9,
                        },
                        end: Position {
                         line: 93,
                         column: 15,
                        },
                       },
                      },
                     ),
                    ],
                    default: None,
                   },
                  ),
                  arguments: [
                   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: 93,
                             column: 23,
                            },
                            end: Position {
                             line: 93,
                             column: 24,
                            },
                           },
                          },
                         ),
                         operator: Addition,
                         right: Identifier(
                          Identifier {
                           id: "y",
                           span: Span {
                            start: Position {
                             line: 93,
                             column: 27,
                            },
                            end: Position {
                             line: 93,
                             column: 28,
                            },
                           },
                          },
                         ),
                        },
                       ),
                       span: Span {
                        start: Position {
                         line: 93,
                         column: 20,
                        },
                        end: Position {
                         line: 93,
                         column: 28,
                        },
                       },
                      },
                     ),
                     span: Span {
                      start: Position {
                       line: 93,
                       column: 17,
                      },
                      end: Position {
                       line: 93,
                       column: 28,
                      },
                     },
                    },
                   ),
                   String(
                    String_ {
                     parts: [],
                     span: Span {
                      start: Position {
                       line: 93,
                       column: 30,
                      },
                      end: Position {
                       line: 93,
                       column: 32,
                      },
                     },
                    },
                   ),
                   FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "intersperse",
                       span: Span {
                        start: Position {
                         line: 93,
                         column: 34,
                        },
                        end: Position {
                         line: 93,
                         column: 45,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "separator",
                        span: Span {
                         start: Position {
                          line: 93,
                          column: 46,
                         },
                         end: Position {
                          line: 93,
                          column: 55,
                         },
                        },
                       },
                      ),
                      Identifier(
                       Identifier {
                        id: "list",
                        span: Span {
                         start: Position {
                          line: 93,
                          column: 56,
                         },
                         end: Position {
                          line: 93,
                          column: 60,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  ],
                 },
                ),
                span: Span {
                 start: Position {
                  line: 92,
                  column: 63,
                 },
                 end: Position {
                  line: 93,
                  column: 61,
                 },
                },
               },
              ),
              span: Span {
               start: Position {
                line: 92,
                column: 52,
               },
               end: Position {
                line: 93,
                column: 61,
               },
              },
             },
            ),
           ),
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "concatMapStringsSep",
            span: Span {
             start: Position {
              line: 105,
              column: 3,
             },
             end: Position {
              line: 105,
              column: 22,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "sep",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "f",
              },
             ),
             body: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "list",
                },
               ),
               body: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "concatStringsSep",
                   span: Span {
                    start: Position {
                     line: 111,
                     column: 11,
                    },
                    end: Position {
                     line: 111,
                     column: 27,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "sep",
                    span: Span {
                     start: Position {
                      line: 111,
                      column: 28,
                     },
                     end: Position {
                      line: 111,
                      column: 31,
                     },
                    },
                   },
                  ),
                  FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "map",
                      span: Span {
                       start: Position {
                        line: 111,
                        column: 33,
                       },
                       end: Position {
                        line: 111,
                        column: 36,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "f",
                       span: Span {
                        start: Position {
                         line: 111,
                         column: 37,
                        },
                        end: Position {
                         line: 111,
                         column: 38,
                        },
                       },
                      },
                     ),
                     Identifier(
                      Identifier {
                       id: "list",
                       span: Span {
                        start: Position {
                         line: 111,
                         column: 39,
                        },
                        end: Position {
                         line: 111,
                         column: 43,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 111,
                 column: 5,
                },
                end: Position {
                 line: 111,
                 column: 44,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 109,
               column: 5,
              },
              end: Position {
               line: 111,
               column: 44,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 107,
             column: 5,
            },
            end: Position {
             line: 111,
             column: 44,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "concatImapStringsSep",
            span: Span {
             start: Position {
              line: 122,
              column: 3,
             },
             end: Position {
              line: 122,
              column: 23,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "sep",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "f",
              },
             ),
             body: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "list",
                },
               ),
               body: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "concatStringsSep",
                   span: Span {
                    start: Position {
                     line: 128,
                     column: 11,
                    },
                    end: Position {
                     line: 128,
                     column: 27,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "sep",
                    span: Span {
                     start: Position {
                      line: 128,
                      column: 28,
                     },
                     end: Position {
                      line: 128,
                      column: 31,
                     },
                    },
                   },
                  ),
                  FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "lib",
                        span: Span {
                         start: Position {
                          line: 128,
                          column: 33,
                         },
                         end: Position {
                          line: 128,
                          column: 36,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "imap1",
                         span: Span {
                          start: Position {
                           line: 128,
                           column: 37,
                          },
                          end: Position {
                           line: 128,
                           column: 42,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "f",
                       span: Span {
                        start: Position {
                         line: 128,
                         column: 43,
                        },
                        end: Position {
                         line: 128,
                         column: 44,
                        },
                       },
                      },
                     ),
                     Identifier(
                      Identifier {
                       id: "list",
                       span: Span {
                        start: Position {
                         line: 128,
                         column: 45,
                        },
                        end: Position {
                         line: 128,
                         column: 49,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 128,
                 column: 5,
                },
                end: Position {
                 line: 128,
                 column: 50,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 126,
               column: 5,
              },
              end: Position {
               line: 128,
               column: 50,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 124,
             column: 5,
            },
            end: Position {
             line: 128,
             column: 50,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "makeSearchPath",
            span: Span {
             start: Position {
              line: 141,
              column: 3,
             },
             end: Position {
              line: 141,
              column: 17,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "subDir",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "paths",
              },
             ),
             body: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "concatStringsSep",
                 span: Span {
                  start: Position {
                   line: 146,
                   column: 5,
                  },
                  end: Position {
                   line: 146,
                   column: 21,
                  },
                 },
                },
               ),
               arguments: [
                String(
                 String_ {
                  parts: [
                   Raw(
                    PartRaw {
                     content: ":",
                     span: Span {
                      start: Position {
                       line: 146,
                       column: 23,
                      },
                      end: Position {
                       line: 146,
                       column: 24,
                      },
                     },
                    },
                   ),
                  ],
                  span: Span {
                   start: Position {
                    line: 146,
                    column: 22,
                   },
                   end: Position {
                    line: 146,
                    column: 25,
                   },
                  },
                 },
                ),
                FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "map",
                    span: Span {
                     start: Position {
                      line: 146,
                      column: 27,
                     },
                     end: Position {
                      line: 146,
                      column: 30,
                     },
                    },
                   },
                  ),
                  arguments: [
                   Function(
                    Function {
                     head: Simple(
                      FunctionHeadSimple {
                       identifier: "path",
                      },
                     ),
                     body: BinaryOperation(
                      BinaryOperation {
                       left: BinaryOperation(
                        BinaryOperation {
                         left: Identifier(
                          Identifier {
                           id: "path",
                           span: Span {
                            start: Position {
                             line: 146,
                             column: 38,
                            },
                            end: Position {
                             line: 146,
                             column: 42,
                            },
                           },
                          },
                         ),
                         operator: Addition,
                         right: String(
                          String_ {
                           parts: [
                            Raw(
                             PartRaw {
                              content: "/",
                              span: Span {
                               start: Position {
                                line: 146,
                                column: 46,
                               },
                               end: Position {
                                line: 146,
                                column: 47,
                               },
                              },
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 146,
                             column: 45,
                            },
                            end: Position {
                             line: 146,
                             column: 48,
                            },
                           },
                          },
                         ),
                        },
                       ),
                       operator: Addition,
                       right: Identifier(
                        Identifier {
                         id: "subDir",
                         span: Span {
                          start: Position {
                           line: 146,
                           column: 51,
                          },
                          end: Position {
                           line: 146,
                           column: 57,
                          },
                         },
                        },
                       ),
                      },
                     ),
                     span: Span {
                      start: Position {
                       line: 146,
                       column: 32,
                      },
                      end: Position {
                       line: 146,
                       column: 57,
                      },
                     },
                    },
                   ),
                   FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "filter",
                       span: Span {
                        start: Position {
                         line: 146,
                         column: 60,
                        },
                        end: Position {
                         line: 146,
                         column: 66,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Function(
                       Function {
                        head: Simple(
                         FunctionHeadSimple {
                          identifier: "x",
                         },
                        ),
                        body: BinaryOperation(
                         BinaryOperation {
                          left: Identifier(
                           Identifier {
                            id: "x",
                            span: Span {
                             start: Position {
                              line: 146,
                              column: 71,
                             },
                             end: Position {
                              line: 146,
                              column: 72,
                             },
                            },
                           },
                          ),
                          operator: NotEqualTo,
                          right: Identifier(
                           Identifier {
                            id: "null",
                            span: Span {
                             start: Position {
                              line: 146,
                              column: 76,
                             },
                             end: Position {
                              line: 146,
                              column: 80,
                             },
                            },
                           },
                          ),
                         },
                        ),
                        span: Span {
                         start: Position {
                          line: 146,
                          column: 68,
                         },
                         end: Position {
                          line: 146,
                          column: 80,
                         },
                        },
                       },
                      ),
                      Identifier(
                       Identifier {
                        id: "paths",
                        span: Span {
                         start: Position {
                          line: 146,
                          column: 82,
                         },
                         end: Position {
                          line: 146,
                          column: 87,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  ],
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 145,
               column: 5,
              },
              end: Position {
               line: 146,
               column: 89,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 143,
             column: 5,
            },
            end: Position {
             line: 146,
             column: 89,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "makeSearchPathOutput",
            span: Span {
             start: Position {
              line: 159,
              column: 3,
             },
             end: Position {
              line: 159,
              column: 23,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "output",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "subDir",
              },
             ),
             body: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "pkgs",
                },
               ),
               body: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "makeSearchPath",
                   span: Span {
                    start: Position {
                     line: 165,
                     column: 11,
                    },
                    end: Position {
                     line: 165,
                     column: 25,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "subDir",
                    span: Span {
                     start: Position {
                      line: 165,
                      column: 26,
                     },
                     end: Position {
                      line: 165,
                      column: 32,
                     },
                    },
                   },
                  ),
                  FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "map",
                      span: Span {
                       start: Position {
                        line: 165,
                        column: 34,
                       },
                       end: Position {
                        line: 165,
                        column: 37,
                       },
                      },
                     },
                    ),
                    arguments: [
                     FunctionApplication(
                      FunctionApplication {
                       function: PropertyAccess(
                        PropertyAccess {
                         expression: Identifier(
                          Identifier {
                           id: "lib",
                           span: Span {
                            start: Position {
                             line: 165,
                             column: 39,
                            },
                            end: Position {
                             line: 165,
                             column: 42,
                            },
                           },
                          },
                         ),
                         attribute_path: [
                          Raw(
                           PartRaw {
                            content: "getOutput",
                            span: Span {
                             start: Position {
                              line: 165,
                              column: 43,
                             },
                             end: Position {
                              line: 165,
                              column: 52,
                             },
                            },
                           },
                          ),
                         ],
                         default: None,
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "output",
                          span: Span {
                           start: Position {
                            line: 165,
                            column: 53,
                           },
                           end: Position {
                            line: 165,
                            column: 59,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     Identifier(
                      Identifier {
                       id: "pkgs",
                       span: Span {
                        start: Position {
                         line: 165,
                         column: 61,
                        },
                        end: Position {
                         line: 165,
                         column: 65,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 165,
                 column: 5,
                },
                end: Position {
                 line: 165,
                 column: 66,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 163,
               column: 5,
              },
              end: Position {
               line: 165,
               column: 66,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 161,
             column: 5,
            },
            end: Position {
             line: 165,
             column: 66,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "makeLibraryPath",
            span: Span {
             start: Position {
              line: 177,
              column: 3,
             },
             end: Position {
              line: 177,
              column: 18,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "makeSearchPathOutput",
             span: Span {
              start: Position {
               line: 177,
               column: 21,
              },
              end: Position {
               line: 177,
               column: 41,
              },
             },
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "lib",
                 span: Span {
                  start: Position {
                   line: 177,
                   column: 43,
                  },
                  end: Position {
                   line: 177,
                   column: 46,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 177,
                column: 42,
               },
               end: Position {
                line: 177,
                column: 47,
               },
              },
             },
            ),
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "lib",
                 span: Span {
                  start: Position {
                   line: 177,
                   column: 49,
                  },
                  end: Position {
                   line: 177,
                   column: 52,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 177,
                column: 48,
               },
               end: Position {
                line: 177,
                column: 53,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "makeBinPath",
            span: Span {
             start: Position {
              line: 186,
              column: 3,
             },
             end: Position {
              line: 186,
              column: 14,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "makeSearchPathOutput",
             span: Span {
              start: Position {
               line: 186,
               column: 17,
              },
              end: Position {
               line: 186,
               column: 37,
              },
             },
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "bin",
                 span: Span {
                  start: Position {
                   line: 186,
                   column: 39,
                  },
                  end: Position {
                   line: 186,
                   column: 42,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 186,
                column: 38,
               },
               end: Position {
                line: 186,
                column: 43,
               },
              },
             },
            ),
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "bin",
                 span: Span {
                  start: Position {
                   line: 186,
                   column: 45,
                  },
                  end: Position {
                   line: 186,
                   column: 48,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 186,
                column: 44,
               },
               end: Position {
                line: 186,
                column: 49,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "normalizePath",
            span: Span {
             start: Position {
              line: 196,
              column: 3,
             },
             end: Position {
              line: 196,
              column: 16,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "s",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: PropertyAccess(
              PropertyAccess {
               expression: Identifier(
                Identifier {
                 id: "builtins",
                 span: Span {
                  start: Position {
                   line: 196,
                   column: 23,
                  },
                  end: Position {
                   line: 196,
                   column: 31,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "foldl'",
                  span: Span {
                   start: Position {
                    line: 196,
                    column: 32,
                   },
                   end: Position {
                    line: 196,
                    column: 38,
                   },
                  },
                 },
                ),
               ],
               default: None,
              },
             ),
             arguments: [
              Function(
               Function {
                head: Simple(
                 FunctionHeadSimple {
                  identifier: "x",
                 },
                ),
                body: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "y",
                   },
                  ),
                  body: IfThenElse(
                   IfThenElse {
                    predicate: BinaryOperation(
                     BinaryOperation {
                      left: BinaryOperation(
                       BinaryOperation {
                        left: Identifier(
                         Identifier {
                          id: "y",
                          span: Span {
                           start: Position {
                            line: 196,
                            column: 49,
                           },
                           end: Position {
                            line: 196,
                            column: 50,
                           },
                          },
                         },
                        ),
                        operator: EqualTo,
                        right: String(
                         String_ {
                          parts: [
                           Raw(
                            PartRaw {
                             content: "/",
                             span: Span {
                              start: Position {
                               line: 196,
                               column: 55,
                              },
                              end: Position {
                               line: 196,
                               column: 56,
                              },
                             },
                            },
                           ),
                          ],
                          span: Span {
                           start: Position {
                            line: 196,
                            column: 54,
                           },
                           end: Position {
                            line: 196,
                            column: 57,
                           },
                          },
                         },
                        ),
                       },
                      ),
                      operator: LogicalAnd,
                      right: FunctionApplication(
                       FunctionApplication {
                        function: Identifier(
                         Identifier {
                          id: "hasSuffix",
                          span: Span {
                           start: Position {
                            line: 196,
                            column: 61,
                           },
                           end: Position {
                            line: 196,
                            column: 70,
                           },
                          },
                         },
                        ),
                        arguments: [
                         String(
                          String_ {
                           parts: [
                            Raw(
                             PartRaw {
                              content: "/",
                              span: Span {
                               start: Position {
                                line: 196,
                                column: 72,
                               },
                               end: Position {
                                line: 196,
                                column: 73,
                               },
                              },
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 196,
                             column: 71,
                            },
                            end: Position {
                             line: 196,
                             column: 74,
                            },
                           },
                          },
                         ),
                         Identifier(
                          Identifier {
                           id: "x",
                           span: Span {
                            start: Position {
                             line: 196,
                             column: 75,
                            },
                            end: Position {
                             line: 196,
                             column: 76,
                            },
                           },
                          },
                         ),
                        ],
                       },
                      ),
                     },
                    ),
                    then: Identifier(
                     Identifier {
                      id: "x",
                      span: Span {
                       start: Position {
                        line: 196,
                        column: 82,
                       },
                       end: Position {
                        line: 196,
                        column: 83,
                       },
                      },
                     },
                    ),
                    else_: BinaryOperation(
                     BinaryOperation {
                      left: Identifier(
                       Identifier {
                        id: "x",
                        span: Span {
                         start: Position {
                          line: 196,
                          column: 89,
                         },
                         end: Position {
                          line: 196,
                          column: 90,
                         },
                        },
                       },
                      ),
                      operator: Addition,
                      right: Identifier(
                       Identifier {
                        id: "y",
                        span: Span {
                         start: Position {
                          line: 196,
                          column: 91,
                         },
                         end: Position {
                          line: 196,
                          column: 92,
                         },
                        },
                       },
                      ),
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 196,
                      column: 46,
                     },
                     end: Position {
                      line: 196,
                      column: 92,
                     },
                    },
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 196,
                    column: 43,
                   },
                   end: Position {
                    line: 196,
                    column: 92,
                   },
                  },
                 },
                ),
                span: Span {
                 start: Position {
                  line: 196,
                  column: 40,
                 },
                 end: Position {
                  line: 196,
                  column: 92,
                 },
                },
               },
              ),
              String(
               String_ {
                parts: [],
                span: Span {
                 start: Position {
                  line: 196,
                  column: 94,
                 },
                 end: Position {
                  line: 196,
                  column: 96,
                 },
                },
               },
              ),
              FunctionApplication(
               FunctionApplication {
                function: Identifier(
                 Identifier {
                  id: "stringToCharacters",
                  span: Span {
                   start: Position {
                    line: 196,
                    column: 98,
                   },
                   end: Position {
                    line: 196,
                    column: 116,
                   },
                  },
                 },
                ),
                arguments: [
                 Identifier(
                  Identifier {
                   id: "s",
                   span: Span {
                    start: Position {
                     line: 196,
                     column: 117,
                    },
                    end: Position {
                     line: 196,
                     column: 118,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 196,
             column: 19,
            },
            end: Position {
             line: 196,
             column: 120,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "optionalString",
            span: Span {
             start: Position {
              line: 209,
              column: 3,
             },
             end: Position {
              line: 209,
              column: 17,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "cond",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "string",
              },
             ),
             body: IfThenElse(
              IfThenElse {
               predicate: Identifier(
                Identifier {
                 id: "cond",
                 span: Span {
                  start: Position {
                   line: 213,
                   column: 16,
                  },
                  end: Position {
                   line: 213,
                   column: 20,
                  },
                 },
                },
               ),
               then: Identifier(
                Identifier {
                 id: "string",
                 span: Span {
                  start: Position {
                   line: 213,
                   column: 26,
                  },
                  end: Position {
                   line: 213,
                   column: 32,
                  },
                 },
                },
               ),
               else_: String(
                String_ {
                 parts: [],
                 span: Span {
                  start: Position {
                   line: 213,
                   column: 38,
                  },
                  end: Position {
                   line: 213,
                   column: 40,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 213,
                 column: 13,
                },
                end: Position {
                 line: 213,
                 column: 40,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 213,
               column: 5,
              },
              end: Position {
               line: 213,
               column: 40,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 211,
             column: 5,
            },
            end: Position {
             line: 213,
             column: 40,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "hasPrefix",
            span: Span {
             start: Position {
              line: 225,
              column: 3,
             },
             end: Position {
              line: 225,
              column: 12,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "pref",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "str",
              },
             ),
             body: BinaryOperation(
              BinaryOperation {
               left: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "substring",
                   span: Span {
                    start: Position {
                     line: 229,
                     column: 10,
                    },
                    end: Position {
                     line: 229,
                     column: 19,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Integer(
                   Integer {
                    value: "0",
                    span: Span {
                     start: Position {
                      line: 229,
                      column: 20,
                     },
                     end: Position {
                      line: 229,
                      column: 21,
                     },
                    },
                   },
                  ),
                  FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "stringLength",
                      span: Span {
                       start: Position {
                        line: 229,
                        column: 23,
                       },
                       end: Position {
                        line: 229,
                        column: 35,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "pref",
                       span: Span {
                        start: Position {
                         line: 229,
                         column: 36,
                        },
                        end: Position {
                         line: 229,
                         column: 40,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                  Identifier(
                   Identifier {
                    id: "str",
                    span: Span {
                     start: Position {
                      line: 229,
                      column: 42,
                     },
                     end: Position {
                      line: 229,
                      column: 45,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               operator: EqualTo,
               right: Identifier(
                Identifier {
                 id: "pref",
                 span: Span {
                  start: Position {
                   line: 229,
                   column: 49,
                  },
                  end: Position {
                   line: 229,
                   column: 53,
                  },
                 },
                },
               ),
              },
             ),
             span: Span {
              start: Position {
               line: 229,
               column: 5,
              },
              end: Position {
               line: 229,
               column: 53,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 227,
             column: 5,
            },
            end: Position {
             line: 229,
             column: 53,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "hasSuffix",
            span: Span {
             start: Position {
              line: 241,
              column: 3,
             },
             end: Position {
              line: 241,
              column: 12,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "suffix",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "content",
              },
             ),
             body: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "lenContent",
                     span: Span {
                      start: Position {
                       line: 247,
                       column: 7,
                      },
                      end: Position {
                       line: 247,
                       column: 17,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "stringLength",
                      span: Span {
                       start: Position {
                        line: 247,
                        column: 20,
                       },
                       end: Position {
                        line: 247,
                        column: 32,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "content",
                       span: Span {
                        start: Position {
                         line: 247,
                         column: 33,
                        },
                        end: Position {
                         line: 247,
                         column: 40,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "lenSuffix",
                     span: Span {
                      start: Position {
                       line: 248,
                       column: 7,
                      },
                      end: Position {
                       line: 248,
                       column: 16,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "stringLength",
                      span: Span {
                       start: Position {
                        line: 248,
                        column: 19,
                       },
                       end: Position {
                        line: 248,
                        column: 31,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "suffix",
                       span: Span {
                        start: Position {
                         line: 248,
                         column: 32,
                        },
                        end: Position {
                         line: 248,
                         column: 38,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
               ],
               target: BinaryOperation(
                BinaryOperation {
                 left: BinaryOperation(
                  BinaryOperation {
                   left: Identifier(
                    Identifier {
                     id: "lenContent",
                     span: Span {
                      start: Position {
                       line: 249,
                       column: 8,
                      },
                      end: Position {
                       line: 249,
                       column: 18,
                      },
                     },
                    },
                   ),
                   operator: GreaterThanOrEqualTo,
                   right: Identifier(
                    Identifier {
                     id: "lenSuffix",
                     span: Span {
                      start: Position {
                       line: 249,
                       column: 22,
                      },
                      end: Position {
                       line: 249,
                       column: 31,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 operator: LogicalAnd,
                 right: BinaryOperation(
                  BinaryOperation {
                   left: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "substring",
                       span: Span {
                        start: Position {
                         line: 250,
                         column: 8,
                        },
                        end: Position {
                         line: 250,
                         column: 17,
                        },
                       },
                      },
                     ),
                     arguments: [
                      BinaryOperation(
                       BinaryOperation {
                        left: Identifier(
                         Identifier {
                          id: "lenContent",
                          span: Span {
                           start: Position {
                            line: 250,
                            column: 19,
                           },
                           end: Position {
                            line: 250,
                            column: 29,
                           },
                          },
                         },
                        ),
                        operator: Subtraction,
                        right: Identifier(
                         Identifier {
                          id: "lenSuffix",
                          span: Span {
                           start: Position {
                            line: 250,
                            column: 32,
                           },
                           end: Position {
                            line: 250,
                            column: 41,
                           },
                          },
                         },
                        ),
                       },
                      ),
                      Identifier(
                       Identifier {
                        id: "lenContent",
                        span: Span {
                         start: Position {
                          line: 250,
                          column: 43,
                         },
                         end: Position {
                          line: 250,
                          column: 53,
                         },
                        },
                       },
                      ),
                      Identifier(
                       Identifier {
                        id: "content",
                        span: Span {
                         start: Position {
                          line: 250,
                          column: 54,
                         },
                         end: Position {
                          line: 250,
                          column: 61,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   operator: EqualTo,
                   right: Identifier(
                    Identifier {
                     id: "suffix",
                     span: Span {
                      start: Position {
                       line: 250,
                       column: 65,
                      },
                      end: Position {
                       line: 250,
                       column: 71,
                      },
                     },
                    },
                   ),
                  },
                 ),
                },
               ),
               span: Span {
                start: Position {
                 line: 246,
                 column: 5,
                },
                end: Position {
                 line: 250,
                 column: 71,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 245,
               column: 5,
              },
              end: Position {
               line: 250,
               column: 71,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 243,
             column: 5,
            },
            end: Position {
             line: 250,
             column: 71,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "hasInfix",
            span: Span {
             start: Position {
              line: 266,
              column: 3,
             },
             end: Position {
              line: 266,
              column: 11,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "infix",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "content",
              },
             ),
             body: BinaryOperation(
              BinaryOperation {
               left: FunctionApplication(
                FunctionApplication {
                 function: PropertyAccess(
                  PropertyAccess {
                   expression: Identifier(
                    Identifier {
                     id: "builtins",
                     span: Span {
                      start: Position {
                       line: 267,
                       column: 5,
                      },
                      end: Position {
                       line: 267,
                       column: 13,
                      },
                     },
                    },
                   ),
                   attribute_path: [
                    Raw(
                     PartRaw {
                      content: "match",
                      span: Span {
                       start: Position {
                        line: 267,
                        column: 14,
                       },
                       end: Position {
                        line: 267,
                        column: 19,
                       },
                      },
                     },
                    ),
                   ],
                   default: None,
                  },
                 ),
                 arguments: [
                  String(
                   String_ {
                    parts: [
                     Raw(
                      PartRaw {
                       content: ".*",
                       span: Span {
                        start: Position {
                         line: 267,
                         column: 21,
                        },
                        end: Position {
                         line: 267,
                         column: 43,
                        },
                       },
                      },
                     ),
                     Interpolation(
                      PartInterpolation {
                       expression: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "escapeRegex",
                           span: Span {
                            start: Position {
                             line: 267,
                             column: 25,
                            },
                            end: Position {
                             line: 267,
                             column: 36,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Identifier(
                           Identifier {
                            id: "infix",
                            span: Span {
                             start: Position {
                              line: 267,
                              column: 37,
                             },
                             end: Position {
                              line: 267,
                              column: 42,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     Raw(
                      PartRaw {
                       content: ".*",
                       span: Span {
                        start: Position {
                         line: 267,
                         column: 21,
                        },
                        end: Position {
                         line: 267,
                         column: 45,
                        },
                       },
                      },
                     ),
                    ],
                    span: Span {
                     start: Position {
                      line: 267,
                      column: 20,
                     },
                     end: Position {
                      line: 267,
                      column: 46,
                     },
                    },
                   },
                  ),
                  String(
                   String_ {
                    parts: [
                     Interpolation(
                      PartInterpolation {
                       expression: Identifier(
                        Identifier {
                         id: "content",
                         span: Span {
                          start: Position {
                           line: 267,
                           column: 50,
                          },
                          end: Position {
                           line: 267,
                           column: 57,
                          },
                         },
                        },
                       ),
                      },
                     ),
                    ],
                    span: Span {
                     start: Position {
                      line: 267,
                      column: 47,
                     },
                     end: Position {
                      line: 267,
                      column: 59,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               operator: NotEqualTo,
               right: Identifier(
                Identifier {
                 id: "null",
                 span: Span {
                  start: Position {
                   line: 267,
                   column: 63,
                  },
                  end: Position {
                   line: 267,
                   column: 67,
                  },
                 },
                },
               ),
              },
             ),
             span: Span {
              start: Position {
               line: 266,
               column: 21,
              },
              end: Position {
               line: 267,
               column: 67,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 266,
             column: 14,
            },
            end: Position {
             line: 267,
             column: 67,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "stringToCharacters",
            span: Span {
             start: Position {
              line: 287,
              column: 3,
             },
             end: Position {
              line: 287,
              column: 21,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "s",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "map",
               span: Span {
                start: Position {
                 line: 288,
                 column: 5,
                },
                end: Position {
                 line: 288,
                 column: 8,
                },
               },
              },
             ),
             arguments: [
              Function(
               Function {
                head: Simple(
                 FunctionHeadSimple {
                  identifier: "p",
                 },
                ),
                body: FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "substring",
                    span: Span {
                     start: Position {
                      line: 288,
                      column: 13,
                     },
                     end: Position {
                      line: 288,
                      column: 22,
                     },
                    },
                   },
                  ),
                  arguments: [
                   Identifier(
                    Identifier {
                     id: "p",
                     span: Span {
                      start: Position {
                       line: 288,
                       column: 23,
                      },
                      end: Position {
                       line: 288,
                       column: 24,
                      },
                     },
                    },
                   ),
                   Integer(
                    Integer {
                     value: "1",
                     span: Span {
                      start: Position {
                       line: 288,
                       column: 25,
                      },
                      end: Position {
                       line: 288,
                       column: 26,
                      },
                     },
                    },
                   ),
                   Identifier(
                    Identifier {
                     id: "s",
                     span: Span {
                      start: Position {
                       line: 288,
                       column: 27,
                      },
                      end: Position {
                       line: 288,
                       column: 28,
                      },
                     },
                    },
                   ),
                  ],
                 },
                ),
                span: Span {
                 start: Position {
                  line: 288,
                  column: 10,
                 },
                 end: Position {
                  line: 288,
                  column: 28,
                 },
                },
               },
              ),
              FunctionApplication(
               FunctionApplication {
                function: PropertyAccess(
                 PropertyAccess {
                  expression: Identifier(
                   Identifier {
                    id: "lib",
                    span: Span {
                     start: Position {
                      line: 288,
                      column: 31,
                     },
                     end: Position {
                      line: 288,
                      column: 34,
                     },
                    },
                   },
                  ),
                  attribute_path: [
                   Raw(
                    PartRaw {
                     content: "range",
                     span: Span {
                      start: Position {
                       line: 288,
                       column: 35,
                      },
                      end: Position {
                       line: 288,
                       column: 40,
                      },
                     },
                    },
                   ),
                  ],
                  default: None,
                 },
                ),
                arguments: [
                 Integer(
                  Integer {
                   value: "0",
                   span: Span {
                    start: Position {
                     line: 288,
                     column: 41,
                    },
                    end: Position {
                     line: 288,
                     column: 42,
                    },
                   },
                  },
                 ),
                 BinaryOperation(
                  BinaryOperation {
                   left: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "stringLength",
                       span: Span {
                        start: Position {
                         line: 288,
                         column: 44,
                        },
                        end: Position {
                         line: 288,
                         column: 56,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "s",
                        span: Span {
                         start: Position {
                          line: 288,
                          column: 57,
                         },
                         end: Position {
                          line: 288,
                          column: 58,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   operator: Subtraction,
                   right: Integer(
                    Integer {
                     value: "1",
                     span: Span {
                      start: Position {
                       line: 288,
                       column: 61,
                      },
                      end: Position {
                       line: 288,
                       column: 62,
                      },
                     },
                    },
                   ),
                  },
                 ),
                ],
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 287,
             column: 24,
            },
            end: Position {
             line: 288,
             column: 64,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "stringAsChars",
            span: Span {
             start: Position {
              line: 299,
              column: 3,
             },
             end: Position {
              line: 299,
              column: 16,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "f",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "s",
              },
             ),
             body: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "concatStrings",
                 span: Span {
                  start: Position {
                   line: 303,
                   column: 8,
                  },
                  end: Position {
                   line: 303,
                   column: 21,
                  },
                 },
                },
               ),
               arguments: [
                FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "map",
                    span: Span {
                     start: Position {
                      line: 304,
                      column: 7,
                     },
                     end: Position {
                      line: 304,
                      column: 10,
                     },
                    },
                   },
                  ),
                  arguments: [
                   Identifier(
                    Identifier {
                     id: "f",
                     span: Span {
                      start: Position {
                       line: 304,
                       column: 11,
                      },
                      end: Position {
                       line: 304,
                       column: 12,
                      },
                     },
                    },
                   ),
                   FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "stringToCharacters",
                       span: Span {
                        start: Position {
                         line: 304,
                         column: 14,
                        },
                        end: Position {
                         line: 304,
                         column: 32,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "s",
                        span: Span {
                         start: Position {
                          line: 304,
                          column: 33,
                         },
                         end: Position {
                          line: 304,
                          column: 34,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  ],
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 303,
               column: 5,
              },
              end: Position {
               line: 305,
               column: 6,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 301,
             column: 5,
            },
            end: Position {
             line: 305,
             column: 6,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "charToInt",
            span: Span {
             start: Position {
              line: 318,
              column: 3,
             },
             end: Position {
              line: 318,
              column: 12,
             },
            },
           },
          ),
         ],
         to: LetIn(
          LetIn {
           bindings: [
            KeyValue(
             BindingKeyValue {
              from: [
               Raw(
                PartRaw {
                 content: "table",
                 span: Span {
                  start: Position {
                   line: 319,
                   column: 5,
                  },
                  end: Position {
                   line: 319,
                   column: 10,
                  },
                 },
                },
               ),
              ],
              to: FunctionApplication(
               FunctionApplication {
                function: Identifier(
                 Identifier {
                  id: "import",
                  span: Span {
                   start: Position {
                    line: 319,
                    column: 13,
                   },
                   end: Position {
                    line: 319,
                    column: 19,
                   },
                  },
                 },
                ),
                arguments: [
                 Path(
                  Path {
                   parts: [
                    Raw(
                     PartRaw {
                      content: "./ascii-table.nix",
                      span: Span {
                       start: Position {
                        line: 319,
                        column: 20,
                       },
                       end: Position {
                        line: 319,
                        column: 37,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 319,
                     column: 20,
                    },
                    end: Position {
                     line: 319,
                     column: 37,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             },
            ),
           ],
           target: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "c",
              },
             ),
             body: FunctionApplication(
              FunctionApplication {
               function: PropertyAccess(
                PropertyAccess {
                 expression: Identifier(
                  Identifier {
                   id: "builtins",
                   span: Span {
                    start: Position {
                     line: 320,
                     column: 9,
                    },
                    end: Position {
                     line: 320,
                     column: 17,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "getAttr",
                    span: Span {
                     start: Position {
                      line: 320,
                      column: 18,
                     },
                     end: Position {
                      line: 320,
                      column: 25,
                     },
                    },
                   },
                  ),
                 ],
                 default: None,
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "c",
                  span: Span {
                   start: Position {
                    line: 320,
                    column: 26,
                   },
                   end: Position {
                    line: 320,
                    column: 27,
                   },
                  },
                 },
                ),
                Identifier(
                 Identifier {
                  id: "table",
                  span: Span {
                   start: Position {
                    line: 320,
                    column: 28,
                   },
                   end: Position {
                    line: 320,
                    column: 33,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 320,
               column: 6,
              },
              end: Position {
               line: 320,
               column: 33,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 318,
             column: 15,
            },
            end: Position {
             line: 320,
             column: 33,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "escape",
            span: Span {
             start: Position {
              line: 331,
              column: 3,
             },
             end: Position {
              line: 331,
              column: 9,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "list",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "replaceChars",
               span: Span {
                start: Position {
                 line: 331,
                 column: 18,
                },
                end: Position {
                 line: 331,
                 column: 30,
                },
               },
              },
             ),
             arguments: [
              Identifier(
               Identifier {
                id: "list",
                span: Span {
                 start: Position {
                  line: 331,
                  column: 31,
                 },
                 end: Position {
                  line: 331,
                  column: 35,
                 },
                },
               },
              ),
              FunctionApplication(
               FunctionApplication {
                function: Identifier(
                 Identifier {
                  id: "map",
                  span: Span {
                   start: Position {
                    line: 331,
                    column: 37,
                   },
                   end: Position {
                    line: 331,
                    column: 40,
                   },
                  },
                 },
                ),
                arguments: [
                 Function(
                  Function {
                   head: Simple(
                    FunctionHeadSimple {
                     identifier: "c",
                    },
                   ),
                   body: String(
                    String_ {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "\\",
                        span: Span {
                         start: Position {
                          line: 331,
                          column: 46,
                         },
                         end: Position {
                          line: 331,
                          column: 52,
                         },
                        },
                       },
                      ),
                      Interpolation(
                       PartInterpolation {
                        expression: Identifier(
                         Identifier {
                          id: "c",
                          span: Span {
                           start: Position {
                            line: 331,
                            column: 50,
                           },
                           end: Position {
                            line: 331,
                            column: 51,
                           },
                          },
                         },
                        ),
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 331,
                       column: 45,
                      },
                      end: Position {
                       line: 331,
                       column: 53,
                      },
                     },
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 331,
                     column: 42,
                    },
                    end: Position {
                     line: 331,
                     column: 53,
                    },
                   },
                  },
                 ),
                 Identifier(
                  Identifier {
                   id: "list",
                   span: Span {
                    start: Position {
                     line: 331,
                     column: 55,
                    },
                    end: Position {
                     line: 331,
                     column: 59,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 331,
             column: 12,
            },
            end: Position {
             line: 331,
             column: 60,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "escapeC",
            span: Span {
             start: Position {
              line: 344,
              column: 3,
             },
             end: Position {
              line: 344,
              column: 10,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "list",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "replaceChars",
               span: Span {
                start: Position {
                 line: 344,
                 column: 19,
                },
                end: Position {
                 line: 344,
                 column: 31,
                },
               },
              },
             ),
             arguments: [
              Identifier(
               Identifier {
                id: "list",
                span: Span {
                 start: Position {
                  line: 344,
                  column: 32,
                 },
                 end: Position {
                  line: 344,
                  column: 36,
                 },
                },
               },
              ),
              FunctionApplication(
               FunctionApplication {
                function: Identifier(
                 Identifier {
                  id: "map",
                  span: Span {
                   start: Position {
                    line: 344,
                    column: 38,
                   },
                   end: Position {
                    line: 344,
                    column: 41,
                   },
                  },
                 },
                ),
                arguments: [
                 Function(
                  Function {
                   head: Simple(
                    FunctionHeadSimple {
                     identifier: "c",
                    },
                   ),
                   body: String(
                    String_ {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "\\x",
                        span: Span {
                         start: Position {
                          line: 344,
                          column: 47,
                         },
                         end: Position {
                          line: 344,
                          column: 93,
                         },
                        },
                       },
                      ),
                      Interpolation(
                       PartInterpolation {
                        expression: FunctionApplication(
                         FunctionApplication {
                          function: Identifier(
                           Identifier {
                            id: "toLower",
                            span: Span {
                             start: Position {
                              line: 344,
                              column: 53,
                             },
                             end: Position {
                              line: 344,
                              column: 60,
                             },
                            },
                           },
                          ),
                          arguments: [
                           FunctionApplication(
                            FunctionApplication {
                             function: PropertyAccess(
                              PropertyAccess {
                               expression: Identifier(
                                Identifier {
                                 id: "lib",
                                 span: Span {
                                  start: Position {
                                   line: 344,
                                   column: 62,
                                  },
                                  end: Position {
                                   line: 344,
                                   column: 65,
                                  },
                                 },
                                },
                               ),
                               attribute_path: [
                                Raw(
                                 PartRaw {
                                  content: "toHexString",
                                  span: Span {
                                   start: Position {
                                    line: 344,
                                    column: 66,
                                   },
                                   end: Position {
                                    line: 344,
                                    column: 77,
                                   },
                                  },
                                 },
                                ),
                               ],
                               default: None,
                              },
                             ),
                             arguments: [
                              FunctionApplication(
                               FunctionApplication {
                                function: Identifier(
                                 Identifier {
                                  id: "charToInt",
                                  span: Span {
                                   start: Position {
                                    line: 344,
                                    column: 79,
                                   },
                                   end: Position {
                                    line: 344,
                                    column: 88,
                                   },
                                  },
                                 },
                                ),
                                arguments: [
                                 Identifier(
                                  Identifier {
                                   id: "c",
                                   span: Span {
                                    start: Position {
                                     line: 344,
                                     column: 89,
                                    },
                                    end: Position {
                                     line: 344,
                                     column: 90,
                                    },
                                   },
                                  },
                                 ),
                                ],
                               },
                              ),
                             ],
                            },
                           ),
                          ],
                         },
                        ),
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 344,
                       column: 46,
                      },
                      end: Position {
                       line: 344,
                       column: 94,
                      },
                     },
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 344,
                     column: 43,
                    },
                    end: Position {
                     line: 344,
                     column: 94,
                    },
                   },
                  },
                 ),
                 Identifier(
                  Identifier {
                   id: "list",
                   span: Span {
                    start: Position {
                     line: 344,
                     column: 96,
                    },
                    end: Position {
                     line: 344,
                     column: 100,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 344,
             column: 13,
            },
            end: Position {
             line: 344,
             column: 101,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "escapeShellArg",
            span: Span {
             start: Position {
              line: 354,
              column: 3,
             },
             end: Position {
              line: 354,
              column: 17,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "arg",
            },
           ),
           body: String(
            String_ {
             parts: [
              Raw(
               PartRaw {
                content: "'",
                span: Span {
                 start: Position {
                  line: 354,
                  column: 26,
                 },
                 end: Position {
                  line: 354,
                  column: 75,
                 },
                },
               },
              ),
              Interpolation(
               PartInterpolation {
                expression: FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "replaceStrings",
                    span: Span {
                     start: Position {
                      line: 354,
                      column: 29,
                     },
                     end: Position {
                      line: 354,
                      column: 43,
                     },
                    },
                   },
                  ),
                  arguments: [
                   List(
                    List {
                     elements: [
                      String(
                       String_ {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "'",
                           span: Span {
                            start: Position {
                             line: 354,
                             column: 46,
                            },
                            end: Position {
                             line: 354,
                             column: 47,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 354,
                          column: 45,
                         },
                         end: Position {
                          line: 354,
                          column: 48,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 354,
                       column: 44,
                      },
                      end: Position {
                       line: 354,
                       column: 49,
                      },
                     },
                    },
                   ),
                   List(
                    List {
                     elements: [
                      String(
                       String_ {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "'\\''",
                           span: Span {
                            start: Position {
                             line: 354,
                             column: 52,
                            },
                            end: Position {
                             line: 354,
                             column: 57,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 354,
                          column: 51,
                         },
                         end: Position {
                          line: 354,
                          column: 58,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 354,
                       column: 50,
                      },
                      end: Position {
                       line: 354,
                       column: 59,
                      },
                     },
                    },
                   ),
                   FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "toString",
                       span: Span {
                        start: Position {
                         line: 354,
                         column: 61,
                        },
                        end: Position {
                         line: 354,
                         column: 69,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "arg",
                        span: Span {
                         start: Position {
                          line: 354,
                          column: 70,
                         },
                         end: Position {
                          line: 354,
                          column: 73,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  ],
                 },
                ),
               },
              ),
              Raw(
               PartRaw {
                content: "'",
                span: Span {
                 start: Position {
                  line: 354,
                  column: 26,
                 },
                 end: Position {
                  line: 354,
                  column: 76,
                 },
                },
               },
              ),
             ],
             span: Span {
              start: Position {
               line: 354,
               column: 25,
              },
              end: Position {
               line: 354,
               column: 77,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 354,
             column: 20,
            },
            end: Position {
             line: 354,
             column: 77,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "escapeShellArgs",
            span: Span {
             start: Position {
              line: 364,
              column: 3,
             },
             end: Position {
              line: 364,
              column: 18,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "concatMapStringsSep",
             span: Span {
              start: Position {
               line: 364,
               column: 21,
              },
              end: Position {
               line: 364,
               column: 40,
              },
             },
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: " ",
                 span: Span {
                  start: Position {
                   line: 364,
                   column: 42,
                  },
                  end: Position {
                   line: 364,
                   column: 43,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 364,
                column: 41,
               },
               end: Position {
                line: 364,
                column: 44,
               },
              },
             },
            ),
            Identifier(
             Identifier {
              id: "escapeShellArg",
              span: Span {
               start: Position {
                line: 364,
                column: 45,
               },
               end: Position {
                line: 364,
                column: 59,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "isValidPosixName",
            span: Span {
             start: Position {
              line: 376,
              column: 3,
             },
             end: Position {
              line: 376,
              column: 19,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "name",
            },
           ),
           body: BinaryOperation(
            BinaryOperation {
             left: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "match",
                 span: Span {
                  start: Position {
                   line: 376,
                   column: 28,
                  },
                  end: Position {
                   line: 376,
                   column: 33,
                  },
                 },
                },
               ),
               arguments: [
                String(
                 String_ {
                  parts: [
                   Raw(
                    PartRaw {
                     content: "[a-zA-Z_][a-zA-Z0-9_]*",
                     span: Span {
                      start: Position {
                       line: 376,
                       column: 35,
                      },
                      end: Position {
                       line: 376,
                       column: 57,
                      },
                     },
                    },
                   ),
                  ],
                  span: Span {
                   start: Position {
                    line: 376,
                    column: 34,
                   },
                   end: Position {
                    line: 376,
                    column: 58,
                   },
                  },
                 },
                ),
                Identifier(
                 Identifier {
                  id: "name",
                  span: Span {
                   start: Position {
                    line: 376,
                    column: 59,
                   },
                   end: Position {
                    line: 376,
                    column: 63,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             operator: NotEqualTo,
             right: Identifier(
              Identifier {
               id: "null",
               span: Span {
                start: Position {
                 line: 376,
                 column: 67,
                },
                end: Position {
                 line: 376,
                 column: 71,
                },
               },
              },
             ),
            },
           ),
           span: Span {
            start: Position {
             line: 376,
             column: 22,
            },
            end: Position {
             line: 376,
             column: 71,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "toShellVar",
            span: Span {
             start: Position {
              line: 396,
              column: 3,
             },
             end: Position {
              line: 396,
              column: 13,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "name",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "value",
              },
             ),
             body: FunctionApplication(
              FunctionApplication {
               function: PropertyAccess(
                PropertyAccess {
                 expression: Identifier(
                  Identifier {
                   id: "lib",
                   span: Span {
                    start: Position {
                     line: 397,
                     column: 5,
                    },
                    end: Position {
                     line: 397,
                     column: 8,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "throwIfNot",
                    span: Span {
                     start: Position {
                      line: 397,
                      column: 9,
                     },
                     end: Position {
                      line: 397,
                      column: 19,
                     },
                    },
                   },
                  ),
                 ],
                 default: None,
                },
               ),
               arguments: [
                FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "isValidPosixName",
                    span: Span {
                     start: Position {
                      line: 397,
                      column: 21,
                     },
                     end: Position {
                      line: 397,
                      column: 37,
                     },
                    },
                   },
                  ),
                  arguments: [
                   Identifier(
                    Identifier {
                     id: "name",
                     span: Span {
                      start: Position {
                       line: 397,
                       column: 38,
                      },
                      end: Position {
                       line: 397,
                       column: 42,
                      },
                     },
                    },
                   ),
                  ],
                 },
                ),
                String(
                 String_ {
                  parts: [
                   Raw(
                    PartRaw {
                     content: "toShellVar: ",
                     span: Span {
                      start: Position {
                       line: 397,
                       column: 45,
                      },
                      end: Position {
                       line: 397,
                       column: 64,
                      },
                     },
                    },
                   ),
                   Interpolation(
                    PartInterpolation {
                     expression: Identifier(
                      Identifier {
                       id: "name",
                       span: Span {
                        start: Position {
                         line: 397,
                         column: 59,
                        },
                        end: Position {
                         line: 397,
                         column: 63,
                        },
                       },
                      },
                     ),
                    },
                   ),
                   Raw(
                    PartRaw {
                     content: " is not a valid shell variable name",
                     span: Span {
                      start: Position {
                       line: 397,
                       column: 45,
                      },
                      end: Position {
                       line: 397,
                       column: 99,
                      },
                     },
                    },
                   ),
                  ],
                  span: Span {
                   start: Position {
                    line: 397,
                    column: 44,
                   },
                   end: Position {
                    line: 397,
                    column: 100,
                   },
                  },
                 },
                ),
                IfThenElse(
                 IfThenElse {
                  predicate: BinaryOperation(
                   BinaryOperation {
                    left: FunctionApplication(
                     FunctionApplication {
                      function: Identifier(
                       Identifier {
                        id: "isAttrs",
                        span: Span {
                         start: Position {
                          line: 398,
                          column: 8,
                         },
                         end: Position {
                          line: 398,
                          column: 15,
                         },
                        },
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "value",
                         span: Span {
                          start: Position {
                           line: 398,
                           column: 16,
                          },
                          end: Position {
                           line: 398,
                           column: 21,
                          },
                         },
                        },
                       ),
                      ],
                     },
                    ),
                    operator: LogicalAnd,
                    right: UnaryOperation(
                     UnaryOperation {
                      operator: Not,
                      operand: FunctionApplication(
                       FunctionApplication {
                        function: Identifier(
                         Identifier {
                          id: "isCoercibleToString",
                          span: Span {
                           start: Position {
                            line: 398,
                            column: 27,
                           },
                           end: Position {
                            line: 398,
                            column: 46,
                           },
                          },
                         },
                        ),
                        arguments: [
                         Identifier(
                          Identifier {
                           id: "value",
                           span: Span {
                            start: Position {
                             line: 398,
                             column: 47,
                            },
                            end: Position {
                             line: 398,
                             column: 52,
                            },
                           },
                          },
                         ),
                        ],
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 398,
                        column: 25,
                       },
                       end: Position {
                        line: 398,
                        column: 52,
                       },
                      },
                     },
                    ),
                   },
                  ),
                  then: String(
                   String_ {
                    parts: [
                     Raw(
                      PartRaw {
                       content: "declare -A ",
                       span: Span {
                        start: Position {
                         line: 399,
                         column: 8,
                        },
                        end: Position {
                         line: 399,
                         column: 26,
                        },
                       },
                      },
                     ),
                     Interpolation(
                      PartInterpolation {
                       expression: Identifier(
                        Identifier {
                         id: "name",
                         span: Span {
                          start: Position {
                           line: 399,
                           column: 21,
                          },
                          end: Position {
                           line: 399,
                           column: 25,
                          },
                         },
                        },
                       ),
                      },
                     ),
                     Raw(
                      PartRaw {
                       content: "=(",
                       span: Span {
                        start: Position {
                         line: 399,
                         column: 8,
                        },
                        end: Position {
                         line: 399,
                         column: 28,
                        },
                       },
                      },
                     ),
                     Interpolation(
                      PartInterpolation {
                       expression: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "concatStringsSep",
                           span: Span {
                            start: Position {
                             line: 400,
                             column: 9,
                            },
                            end: Position {
                             line: 400,
                             column: 25,
                            },
                           },
                          },
                         ),
                         arguments: [
                          String(
                           String_ {
                            parts: [
                             Raw(
                              PartRaw {
                               content: " ",
                               span: Span {
                                start: Position {
                                 line: 400,
                                 column: 27,
                                },
                                end: Position {
                                 line: 400,
                                 column: 28,
                                },
                               },
                              },
                             ),
                            ],
                            span: Span {
                             start: Position {
                              line: 400,
                              column: 26,
                             },
                             end: Position {
                              line: 400,
                              column: 29,
                             },
                            },
                           },
                          ),
                          FunctionApplication(
                           FunctionApplication {
                            function: PropertyAccess(
                             PropertyAccess {
                              expression: Identifier(
                               Identifier {
                                id: "lib",
                                span: Span {
                                 start: Position {
                                  line: 400,
                                  column: 31,
                                 },
                                 end: Position {
                                  line: 400,
                                  column: 34,
                                 },
                                },
                               },
                              ),
                              attribute_path: [
                               Raw(
                                PartRaw {
                                 content: "mapAttrsToList",
                                 span: Span {
                                  start: Position {
                                   line: 400,
                                   column: 35,
                                  },
                                  end: Position {
                                   line: 400,
                                   column: 49,
                                  },
                                 },
                                },
                               ),
                              ],
                              default: None,
                             },
                            ),
                            arguments: [
                             Function(
                              Function {
                               head: Simple(
                                FunctionHeadSimple {
                                 identifier: "n",
                                },
                               ),
                               body: Function(
                                Function {
                                 head: Simple(
                                  FunctionHeadSimple {
                                   identifier: "v",
                                  },
                                 ),
                                 body: String(
                                  String_ {
                                   parts: [
                                    Raw(
                                     PartRaw {
                                      content: "[",
                                      span: Span {
                                       start: Position {
                                        line: 401,
                                        column: 12,
                                       },
                                       end: Position {
                                        line: 401,
                                        column: 32,
                                       },
                                      },
                                     },
                                    ),
                                    Interpolation(
                                     PartInterpolation {
                                      expression: FunctionApplication(
                                       FunctionApplication {
                                        function: Identifier(
                                         Identifier {
                                          id: "escapeShellArg",
                                          span: Span {
                                           start: Position {
                                            line: 401,
                                            column: 15,
                                           },
                                           end: Position {
                                            line: 401,
                                            column: 29,
                                           },
                                          },
                                         },
                                        ),
                                        arguments: [
                                         Identifier(
                                          Identifier {
                                           id: "n",
                                           span: Span {
                                            start: Position {
                                             line: 401,
                                             column: 30,
                                            },
                                            end: Position {
                                             line: 401,
                                             column: 31,
                                            },
                                           },
                                          },
                                         ),
                                        ],
                                       },
                                      ),
                                     },
                                    ),
                                    Raw(
                                     PartRaw {
                                      content: "]=",
                                      span: Span {
                                       start: Position {
                                        line: 401,
                                        column: 12,
                                       },
                                       end: Position {
                                        line: 401,
                                        column: 34,
                                       },
                                      },
                                     },
                                    ),
                                    Interpolation(
                                     PartInterpolation {
                                      expression: FunctionApplication(
                                       FunctionApplication {
                                        function: Identifier(
                                         Identifier {
                                          id: "escapeShellArg",
                                          span: Span {
                                           start: Position {
                                            line: 401,
                                            column: 36,
                                           },
                                           end: Position {
                                            line: 401,
                                            column: 50,
                                           },
                                          },
                                         },
                                        ),
                                        arguments: [
                                         Identifier(
                                          Identifier {
                                           id: "v",
                                           span: Span {
                                            start: Position {
                                             line: 401,
                                             column: 51,
                                            },
                                            end: Position {
                                             line: 401,
                                             column: 52,
                                            },
                                           },
                                          },
                                         ),
                                        ],
                                       },
                                      ),
                                     },
                                    ),
                                   ],
                                   span: Span {
                                    start: Position {
                                     line: 401,
                                     column: 11,
                                    },
                                    end: Position {
                                     line: 401,
                                     column: 54,
                                    },
                                   },
                                  },
                                 ),
                                 span: Span {
                                  start: Position {
                                   line: 400,
                                   column: 54,
                                  },
                                  end: Position {
                                   line: 401,
                                   column: 54,
                                  },
                                 },
                                },
                               ),
                               span: Span {
                                start: Position {
                                 line: 400,
                                 column: 51,
                                },
                                end: Position {
                                 line: 401,
                                 column: 54,
                                },
                               },
                              },
                             ),
                             Identifier(
                              Identifier {
                               id: "value",
                               span: Span {
                                start: Position {
                                 line: 402,
                                 column: 11,
                                },
                                end: Position {
                                 line: 402,
                                 column: 16,
                                },
                               },
                              },
                             ),
                            ],
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     Raw(
                      PartRaw {
                       content: ")",
                       span: Span {
                        start: Position {
                         line: 399,
                         column: 8,
                        },
                        end: Position {
                         line: 403,
                         column: 9,
                        },
                       },
                      },
                     ),
                    ],
                    span: Span {
                     start: Position {
                      line: 399,
                      column: 7,
                     },
                     end: Position {
                      line: 403,
                      column: 10,
                     },
                    },
                   },
                  ),
                  else_: IfThenElse(
                   IfThenElse {
                    predicate: FunctionApplication(
                     FunctionApplication {
                      function: Identifier(
                       Identifier {
                        id: "isList",
                        span: Span {
                         start: Position {
                          line: 404,
                          column: 13,
                         },
                         end: Position {
                          line: 404,
                          column: 19,
                         },
                        },
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "value",
                         span: Span {
                          start: Position {
                           line: 404,
                           column: 20,
                          },
                          end: Position {
                           line: 404,
                           column: 25,
                          },
                         },
                        },
                       ),
                      ],
                     },
                    ),
                    then: String(
                     String_ {
                      parts: [
                       Raw(
                        PartRaw {
                         content: "declare -a ",
                         span: Span {
                          start: Position {
                           line: 405,
                           column: 8,
                          },
                          end: Position {
                           line: 405,
                           column: 26,
                          },
                         },
                        },
                       ),
                       Interpolation(
                        PartInterpolation {
                         expression: Identifier(
                          Identifier {
                           id: "name",
                           span: Span {
                            start: Position {
                             line: 405,
                             column: 21,
                            },
                            end: Position {
                             line: 405,
                             column: 25,
                            },
                           },
                          },
                         ),
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "=(",
                         span: Span {
                          start: Position {
                           line: 405,
                           column: 8,
                          },
                          end: Position {
                           line: 405,
                           column: 28,
                          },
                         },
                        },
                       ),
                       Interpolation(
                        PartInterpolation {
                         expression: FunctionApplication(
                          FunctionApplication {
                           function: Identifier(
                            Identifier {
                             id: "escapeShellArgs",
                             span: Span {
                              start: Position {
                               line: 405,
                               column: 30,
                              },
                              end: Position {
                               line: 405,
                               column: 45,
                              },
                             },
                            },
                           ),
                           arguments: [
                            Identifier(
                             Identifier {
                              id: "value",
                              span: Span {
                               start: Position {
                                line: 405,
                                column: 46,
                               },
                               end: Position {
                                line: 405,
                                column: 51,
                               },
                              },
                             },
                            ),
                           ],
                          },
                         ),
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: ")",
                         span: Span {
                          start: Position {
                           line: 405,
                           column: 8,
                          },
                          end: Position {
                           line: 405,
                           column: 53,
                          },
                         },
                        },
                       ),
                      ],
                      span: Span {
                       start: Position {
                        line: 405,
                        column: 7,
                       },
                       end: Position {
                        line: 405,
                        column: 54,
                       },
                      },
                     },
                    ),
                    else_: String(
                     String_ {
                      parts: [
                       Interpolation(
                        PartInterpolation {
                         expression: Identifier(
                          Identifier {
                           id: "name",
                           span: Span {
                            start: Position {
                             line: 407,
                             column: 10,
                            },
                            end: Position {
                             line: 407,
                             column: 14,
                            },
                           },
                          },
                         ),
                        },
                       ),
                       Raw(
                        PartRaw {
                         content: "=",
                         span: Span {
                          start: Position {
                           line: 407,
                           column: 8,
                          },
                          end: Position {
                           line: 407,
                           column: 16,
                          },
                         },
                        },
                       ),
                       Interpolation(
                        PartInterpolation {
                         expression: FunctionApplication(
                          FunctionApplication {
                           function: Identifier(
                            Identifier {
                             id: "escapeShellArg",
                             span: Span {
                              start: Position {
                               line: 407,
                               column: 18,
                              },
                              end: Position {
                               line: 407,
                               column: 32,
                              },
                             },
                            },
                           ),
                           arguments: [
                            Identifier(
                             Identifier {
                              id: "value",
                              span: Span {
                               start: Position {
                                line: 407,
                                column: 33,
                               },
                               end: Position {
                                line: 407,
                                column: 38,
                               },
                              },
                             },
                            ),
                           ],
                          },
                         ),
                        },
                       ),
                      ],
                      span: Span {
                       start: Position {
                        line: 407,
                        column: 7,
                       },
                       end: Position {
                        line: 407,
                        column: 40,
                       },
                      },
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 404,
                      column: 10,
                     },
                     end: Position {
                      line: 407,
                      column: 40,
                     },
                    },
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 398,
                    column: 5,
                   },
                   end: Position {
                    line: 407,
                    column: 40,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 396,
               column: 22,
              },
              end: Position {
               line: 408,
               column: 6,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 396,
             column: 16,
            },
            end: Position {
             line: 408,
             column: 6,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "toShellVars",
            span: Span {
             start: Position {
              line: 424,
              column: 3,
             },
             end: Position {
              line: 424,
              column: 14,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "vars",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "concatStringsSep",
               span: Span {
                start: Position {
                 line: 424,
                 column: 23,
                },
                end: Position {
                 line: 424,
                 column: 39,
                },
               },
              },
             ),
             arguments: [
              String(
               String_ {
                parts: [
                 Raw(
                  PartRaw {
                   content: "\n",
                   span: Span {
                    start: Position {
                     line: 424,
                     column: 41,
                    },
                    end: Position {
                     line: 424,
                     column: 43,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 424,
                  column: 40,
                 },
                 end: Position {
                  line: 424,
                  column: 44,
                 },
                },
               },
              ),
              FunctionApplication(
               FunctionApplication {
                function: PropertyAccess(
                 PropertyAccess {
                  expression: Identifier(
                   Identifier {
                    id: "lib",
                    span: Span {
                     start: Position {
                      line: 424,
                      column: 46,
                     },
                     end: Position {
                      line: 424,
                      column: 49,
                     },
                    },
                   },
                  ),
                  attribute_path: [
                   Raw(
                    PartRaw {
                     content: "mapAttrsToList",
                     span: Span {
                      start: Position {
                       line: 424,
                       column: 50,
                      },
                      end: Position {
                       line: 424,
                       column: 64,
                      },
                     },
                    },
                   ),
                  ],
                  default: None,
                 },
                ),
                arguments: [
                 Identifier(
                  Identifier {
                   id: "toShellVar",
                   span: Span {
                    start: Position {
                     line: 424,
                     column: 65,
                    },
                    end: Position {
                     line: 424,
                     column: 75,
                    },
                   },
                  },
                 ),
                 Identifier(
                  Identifier {
                   id: "vars",
                   span: Span {
                    start: Position {
                     line: 424,
                     column: 76,
                    },
                    end: Position {
                     line: 424,
                     column: 80,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 424,
             column: 17,
            },
            end: Position {
             line: 424,
             column: 81,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "escapeNixString",
            span: Span {
             start: Position {
              line: 434,
              column: 3,
             },
             end: Position {
              line: 434,
              column: 18,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "s",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "escape",
               span: Span {
                start: Position {
                 line: 434,
                 column: 24,
                },
                end: Position {
                 line: 434,
                 column: 30,
                },
               },
              },
             ),
             arguments: [
              List(
               List {
                elements: [
                 String(
                  String_ {
                   parts: [
                    Raw(
                     PartRaw {
                      content: "$",
                      span: Span {
                       start: Position {
                        line: 434,
                        column: 33,
                       },
                       end: Position {
                        line: 434,
                        column: 34,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 434,
                     column: 32,
                    },
                    end: Position {
                     line: 434,
                     column: 35,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 434,
                  column: 31,
                 },
                 end: Position {
                  line: 434,
                  column: 36,
                 },
                },
               },
              ),
              FunctionApplication(
               FunctionApplication {
                function: Identifier(
                 Identifier {
                  id: "toJSON",
                  span: Span {
                   start: Position {
                    line: 434,
                    column: 38,
                   },
                   end: Position {
                    line: 434,
                    column: 44,
                   },
                  },
                 },
                ),
                arguments: [
                 Identifier(
                  Identifier {
                   id: "s",
                   span: Span {
                    start: Position {
                     line: 434,
                     column: 45,
                    },
                    end: Position {
                     line: 434,
                     column: 46,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 434,
             column: 21,
            },
            end: Position {
             line: 434,
             column: 47,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "escapeRegex",
            span: Span {
             start: Position {
              line: 444,
              column: 3,
             },
             end: Position {
              line: 444,
              column: 14,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "escape",
             span: Span {
              start: Position {
               line: 444,
               column: 17,
              },
              end: Position {
               line: 444,
               column: 23,
              },
             },
            },
           ),
           arguments: [
            FunctionApplication(
             FunctionApplication {
              function: Identifier(
               Identifier {
                id: "stringToCharacters",
                span: Span {
                 start: Position {
                  line: 444,
                  column: 25,
                 },
                 end: Position {
                  line: 444,
                  column: 43,
                 },
                },
               },
              ),
              arguments: [
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "\\[{()^$?*+|.",
                    span: Span {
                     start: Position {
                      line: 444,
                      column: 45,
                     },
                     end: Position {
                      line: 444,
                      column: 58,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 444,
                   column: 44,
                  },
                  end: Position {
                   line: 444,
                   column: 59,
                  },
                 },
                },
               ),
              ],
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "escapeNixIdentifier",
            span: Span {
             start: Position {
              line: 456,
              column: 3,
             },
             end: Position {
              line: 456,
              column: 22,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "s",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: BinaryOperation(
              BinaryOperation {
               left: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "match",
                   span: Span {
                    start: Position {
                     line: 458,
                     column: 8,
                    },
                    end: Position {
                     line: 458,
                     column: 13,
                    },
                   },
                  },
                 ),
                 arguments: [
                  String(
                   String_ {
                    parts: [
                     Raw(
                      PartRaw {
                       content: "[a-zA-Z_][a-zA-Z0-9_'-]*",
                       span: Span {
                        start: Position {
                         line: 458,
                         column: 15,
                        },
                        end: Position {
                         line: 458,
                         column: 39,
                        },
                       },
                      },
                     ),
                    ],
                    span: Span {
                     start: Position {
                      line: 458,
                      column: 14,
                     },
                     end: Position {
                      line: 458,
                      column: 40,
                     },
                    },
                   },
                  ),
                  Identifier(
                   Identifier {
                    id: "s",
                    span: Span {
                     start: Position {
                      line: 458,
                      column: 41,
                     },
                     end: Position {
                      line: 458,
                      column: 42,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               operator: NotEqualTo,
               right: Identifier(
                Identifier {
                 id: "null",
                 span: Span {
                  start: Position {
                   line: 458,
                   column: 46,
                  },
                  end: Position {
                   line: 458,
                   column: 50,
                  },
                 },
                },
               ),
              },
             ),
             then: Identifier(
              Identifier {
               id: "s",
               span: Span {
                start: Position {
                 line: 459,
                 column: 10,
                },
                end: Position {
                 line: 459,
                 column: 11,
                },
               },
              },
             ),
             else_: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "escapeNixString",
                 span: Span {
                  start: Position {
                   line: 459,
                   column: 17,
                  },
                  end: Position {
                   line: 459,
                   column: 32,
                  },
                 },
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "s",
                  span: Span {
                   start: Position {
                    line: 459,
                    column: 33,
                   },
                   end: Position {
                    line: 459,
                    column: 34,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 458,
               column: 5,
              },
              end: Position {
               line: 459,
               column: 34,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 456,
             column: 25,
            },
            end: Position {
             line: 459,
             column: 34,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "escapeXML",
            span: Span {
             start: Position {
              line: 470,
              column: 3,
             },
             end: Position {
              line: 470,
              column: 12,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "builtins",
               span: Span {
                start: Position {
                 line: 470,
                 column: 15,
                },
                end: Position {
                 line: 470,
                 column: 23,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "replaceStrings",
                span: Span {
                 start: Position {
                  line: 470,
                  column: 24,
                 },
                 end: Position {
                  line: 470,
                  column: 38,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            List(
             List {
              elements: [
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "\"",
                    span: Span {
                     start: Position {
                      line: 471,
                      column: 7,
                     },
                     end: Position {
                      line: 471,
                      column: 9,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 471,
                   column: 6,
                  },
                  end: Position {
                   line: 471,
                   column: 10,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "'",
                    span: Span {
                     start: Position {
                      line: 471,
                      column: 12,
                     },
                     end: Position {
                      line: 471,
                      column: 13,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 471,
                   column: 11,
                  },
                  end: Position {
                   line: 471,
                   column: 14,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "<",
                    span: Span {
                     start: Position {
                      line: 471,
                      column: 16,
                     },
                     end: Position {
                      line: 471,
                      column: 17,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 471,
                   column: 15,
                  },
                  end: Position {
                   line: 471,
                   column: 18,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: ">",
                    span: Span {
                     start: Position {
                      line: 471,
                      column: 20,
                     },
                     end: Position {
                      line: 471,
                      column: 21,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 471,
                   column: 19,
                  },
                  end: Position {
                   line: 471,
                   column: 22,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "&",
                    span: Span {
                     start: Position {
                      line: 471,
                      column: 24,
                     },
                     end: Position {
                      line: 471,
                      column: 25,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 471,
                   column: 23,
                  },
                  end: Position {
                   line: 471,
                   column: 26,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 471,
                column: 5,
               },
               end: Position {
                line: 471,
                column: 27,
               },
              },
             },
            ),
            List(
             List {
              elements: [
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "&quot;",
                    span: Span {
                     start: Position {
                      line: 472,
                      column: 7,
                     },
                     end: Position {
                      line: 472,
                      column: 13,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 472,
                   column: 6,
                  },
                  end: Position {
                   line: 472,
                   column: 14,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "&apos;",
                    span: Span {
                     start: Position {
                      line: 472,
                      column: 16,
                     },
                     end: Position {
                      line: 472,
                      column: 22,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 472,
                   column: 15,
                  },
                  end: Position {
                   line: 472,
                   column: 23,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "&lt;",
                    span: Span {
                     start: Position {
                      line: 472,
                      column: 25,
                     },
                     end: Position {
                      line: 472,
                      column: 29,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 472,
                   column: 24,
                  },
                  end: Position {
                   line: 472,
                   column: 30,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "&gt;",
                    span: Span {
                     start: Position {
                      line: 472,
                      column: 32,
                     },
                     end: Position {
                      line: 472,
                      column: 36,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 472,
                   column: 31,
                  },
                  end: Position {
                   line: 472,
                   column: 37,
                  },
                 },
                },
               ),
               String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "&amp;",
                    span: Span {
                     start: Position {
                      line: 472,
                      column: 39,
                     },
                     end: Position {
                      line: 472,
                      column: 44,
                     },
                    },
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 472,
                   column: 38,
                  },
                  end: Position {
                   line: 472,
                   column: 45,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 472,
                column: 5,
               },
               end: Position {
                line: 472,
                column: 46,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "replaceChars",
            span: Span {
             start: Position {
              line: 475,
              column: 3,
             },
             end: Position {
              line: 475,
              column: 15,
             },
            },
           },
          ),
         ],
         to: PropertyAccess(
          PropertyAccess {
           expression: Identifier(
            Identifier {
             id: "builtins",
             span: Span {
              start: Position {
               line: 475,
               column: 18,
              },
              end: Position {
               line: 475,
               column: 26,
              },
             },
            },
           ),
           attribute_path: [
            Raw(
             PartRaw {
              content: "replaceStrings",
              span: Span {
               start: Position {
                line: 475,
                column: 27,
               },
               end: Position {
                line: 475,
                column: 41,
               },
              },
             },
            ),
           ],
           default: Some(
            Function(
             Function {
              head: Simple(
               FunctionHeadSimple {
                identifier: "del",
               },
              ),
              body: Function(
               Function {
                head: Simple(
                 FunctionHeadSimple {
                  identifier: "new",
                 },
                ),
                body: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "s",
                   },
                  ),
                  body: LetIn(
                   LetIn {
                    bindings: [
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "substList",
                          span: Span {
                           start: Position {
                            line: 478,
                            column: 7,
                           },
                           end: Position {
                            line: 478,
                            column: 16,
                           },
                          },
                         },
                        ),
                       ],
                       to: FunctionApplication(
                        FunctionApplication {
                         function: PropertyAccess(
                          PropertyAccess {
                           expression: Identifier(
                            Identifier {
                             id: "lib",
                             span: Span {
                              start: Position {
                               line: 478,
                               column: 19,
                              },
                              end: Position {
                               line: 478,
                               column: 22,
                              },
                             },
                            },
                           ),
                           attribute_path: [
                            Raw(
                             PartRaw {
                              content: "zipLists",
                              span: Span {
                               start: Position {
                                line: 478,
                                column: 23,
                               },
                               end: Position {
                                line: 478,
                                column: 31,
                               },
                              },
                             },
                            ),
                           ],
                           default: None,
                          },
                         ),
                         arguments: [
                          Identifier(
                           Identifier {
                            id: "del",
                            span: Span {
                             start: Position {
                              line: 478,
                              column: 32,
                             },
                             end: Position {
                              line: 478,
                              column: 35,
                             },
                            },
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "new",
                            span: Span {
                             start: Position {
                              line: 478,
                              column: 36,
                             },
                             end: Position {
                              line: 478,
                              column: 39,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "subst",
                          span: Span {
                           start: Position {
                            line: 479,
                            column: 7,
                           },
                           end: Position {
                            line: 479,
                            column: 12,
                           },
                          },
                         },
                        ),
                       ],
                       to: Function(
                        Function {
                         head: Simple(
                          FunctionHeadSimple {
                           identifier: "c",
                          },
                         ),
                         body: LetIn(
                          LetIn {
                           bindings: [
                            KeyValue(
                             BindingKeyValue {
                              from: [
                               Raw(
                                PartRaw {
                                 content: "found",
                                 span: Span {
                                  start: Position {
                                   line: 480,
                                   column: 13,
                                  },
                                  end: Position {
                                   line: 480,
                                   column: 18,
                                  },
                                 },
                                },
                               ),
                              ],
                              to: FunctionApplication(
                               FunctionApplication {
                                function: PropertyAccess(
                                 PropertyAccess {
                                  expression: Identifier(
                                   Identifier {
                                    id: "lib",
                                    span: Span {
                                     start: Position {
                                      line: 480,
                                      column: 21,
                                     },
                                     end: Position {
                                      line: 480,
                                      column: 24,
                                     },
                                    },
                                   },
                                  ),
                                  attribute_path: [
                                   Raw(
                                    PartRaw {
                                     content: "findFirst",
                                     span: Span {
                                      start: Position {
                                       line: 480,
                                       column: 25,
                                      },
                                      end: Position {
                                       line: 480,
                                       column: 34,
                                      },
                                     },
                                    },
                                   ),
                                  ],
                                  default: None,
                                 },
                                ),
                                arguments: [
                                 Function(
                                  Function {
                                   head: Simple(
                                    FunctionHeadSimple {
                                     identifier: "sub",
                                    },
                                   ),
                                   body: BinaryOperation(
                                    BinaryOperation {
                                     left: PropertyAccess(
                                      PropertyAccess {
                                       expression: Identifier(
                                        Identifier {
                                         id: "sub",
                                         span: Span {
                                          start: Position {
                                           line: 480,
                                           column: 41,
                                          },
                                          end: Position {
                                           line: 480,
                                           column: 44,
                                          },
                                         },
                                        },
                                       ),
                                       attribute_path: [
                                        Raw(
                                         PartRaw {
                                          content: "fst",
                                          span: Span {
                                           start: Position {
                                            line: 480,
                                            column: 45,
                                           },
                                           end: Position {
                                            line: 480,
                                            column: 48,
                                           },
                                          },
                                         },
                                        ),
                                       ],
                                       default: None,
                                      },
                                     ),
                                     operator: EqualTo,
                                     right: Identifier(
                                      Identifier {
                                       id: "c",
                                       span: Span {
                                        start: Position {
                                         line: 480,
                                         column: 52,
                                        },
                                        end: Position {
                                         line: 480,
                                         column: 53,
                                        },
                                       },
                                      },
                                     ),
                                    },
                                   ),
                                   span: Span {
                                    start: Position {
                                     line: 480,
                                     column: 36,
                                    },
                                    end: Position {
                                     line: 480,
                                     column: 53,
                                    },
                                   },
                                  },
                                 ),
                                 Identifier(
                                  Identifier {
                                   id: "null",
                                   span: Span {
                                    start: Position {
                                     line: 480,
                                     column: 55,
                                    },
                                    end: Position {
                                     line: 480,
                                     column: 59,
                                    },
                                   },
                                  },
                                 ),
                                 Identifier(
                                  Identifier {
                                   id: "substList",
                                   span: Span {
                                    start: Position {
                                     line: 480,
                                     column: 60,
                                    },
                                    end: Position {
                                     line: 480,
                                     column: 69,
                                    },
                                   },
                                  },
                                 ),
                                ],
                               },
                              ),
                             },
                            ),
                           ],
                           target: IfThenElse(
                            IfThenElse {
                             predicate: BinaryOperation(
                              BinaryOperation {
                               left: Identifier(
                                Identifier {
                                 id: "found",
                                 span: Span {
                                  start: Position {
                                   line: 481,
                                   column: 12,
                                  },
                                  end: Position {
                                   line: 481,
                                   column: 17,
                                  },
                                 },
                                },
                               ),
                               operator: EqualTo,
                               right: Identifier(
                                Identifier {
                                 id: "null",
                                 span: Span {
                                  start: Position {
                                   line: 481,
                                   column: 21,
                                  },
                                  end: Position {
                                   line: 481,
                                   column: 25,
                                  },
                                 },
                                },
                               ),
                              },
                             ),
                             then: Identifier(
                              Identifier {
                               id: "c",
                               span: Span {
                                start: Position {
                                 line: 482,
                                 column: 11,
                                },
                                end: Position {
                                 line: 482,
                                 column: 12,
                                },
                               },
                              },
                             ),
                             else_: PropertyAccess(
                              PropertyAccess {
                               expression: Identifier(
                                Identifier {
                                 id: "found",
                                 span: Span {
                                  start: Position {
                                   line: 484,
                                   column: 11,
                                  },
                                  end: Position {
                                   line: 484,
                                   column: 16,
                                  },
                                 },
                                },
                               ),
                               attribute_path: [
                                Raw(
                                 PartRaw {
                                  content: "snd",
                                  span: Span {
                                   start: Position {
                                    line: 484,
                                    column: 17,
                                   },
                                   end: Position {
                                    line: 484,
                                    column: 20,
                                   },
                                  },
                                 },
                                ),
                               ],
                               default: None,
                              },
                             ),
                             span: Span {
                              start: Position {
                               line: 481,
                               column: 9,
                              },
                              end: Position {
                               line: 484,
                               column: 20,
                              },
                             },
                            },
                           ),
                           span: Span {
                            start: Position {
                             line: 480,
                             column: 9,
                            },
                            end: Position {
                             line: 484,
                             column: 20,
                            },
                           },
                          },
                         ),
                         span: Span {
                          start: Position {
                           line: 479,
                           column: 15,
                          },
                          end: Position {
                           line: 484,
                           column: 20,
                          },
                         },
                        },
                       ),
                      },
                     ),
                    ],
                    target: FunctionApplication(
                     FunctionApplication {
                      function: Identifier(
                       Identifier {
                        id: "stringAsChars",
                        span: Span {
                         start: Position {
                          line: 486,
                          column: 7,
                         },
                         end: Position {
                          line: 486,
                          column: 20,
                         },
                        },
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "subst",
                         span: Span {
                          start: Position {
                           line: 486,
                           column: 21,
                          },
                          end: Position {
                           line: 486,
                           column: 26,
                          },
                         },
                        },
                       ),
                       Identifier(
                        Identifier {
                         id: "s",
                         span: Span {
                          start: Position {
                           line: 486,
                           column: 27,
                          },
                          end: Position {
                           line: 486,
                           column: 28,
                          },
                         },
                        },
                       ),
                      ],
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 477,
                      column: 5,
                     },
                     end: Position {
                      line: 486,
                      column: 28,
                     },
                    },
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 476,
                    column: 15,
                   },
                   end: Position {
                    line: 486,
                    column: 28,
                   },
                  },
                 },
                ),
                span: Span {
                 start: Position {
                  line: 476,
                  column: 10,
                 },
                 end: Position {
                  line: 486,
                  column: 28,
                 },
                },
               },
              ),
              span: Span {
               start: Position {
                line: 476,
                column: 5,
               },
               end: Position {
                line: 486,
                column: 28,
               },
              },
             },
            ),
           ),
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "lowerChars",
            span: Span {
             start: Position {
              line: 489,
              column: 3,
             },
             end: Position {
              line: 489,
              column: 13,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "stringToCharacters",
             span: Span {
              start: Position {
               line: 489,
               column: 16,
              },
              end: Position {
               line: 489,
               column: 34,
              },
             },
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "abcdefghijklmnopqrstuvwxyz",
                 span: Span {
                  start: Position {
                   line: 489,
                   column: 36,
                  },
                  end: Position {
                   line: 489,
                   column: 62,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 489,
                column: 35,
               },
               end: Position {
                line: 489,
                column: 63,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "upperChars",
            span: Span {
             start: Position {
              line: 490,
              column: 3,
             },
             end: Position {
              line: 490,
              column: 13,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "stringToCharacters",
             span: Span {
              start: Position {
               line: 490,
               column: 16,
              },
              end: Position {
               line: 490,
               column: 34,
              },
             },
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
                 span: Span {
                  start: Position {
                   line: 490,
                   column: 36,
                  },
                  end: Position {
                   line: 490,
                   column: 62,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 490,
                column: 35,
               },
               end: Position {
                line: 490,
                column: 63,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "toLower",
            span: Span {
             start: Position {
              line: 500,
              column: 3,
             },
             end: Position {
              line: 500,
              column: 10,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "replaceChars",
             span: Span {
              start: Position {
               line: 500,
               column: 13,
              },
              end: Position {
               line: 500,
               column: 25,
              },
             },
            },
           ),
           arguments: [
            Identifier(
             Identifier {
              id: "upperChars",
              span: Span {
               start: Position {
                line: 500,
                column: 26,
               },
               end: Position {
                line: 500,
                column: 36,
               },
              },
             },
            ),
            Identifier(
             Identifier {
              id: "lowerChars",
              span: Span {
               start: Position {
                line: 500,
                column: 37,
               },
               end: Position {
                line: 500,
                column: 47,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "toUpper",
            span: Span {
             start: Position {
              line: 510,
              column: 3,
             },
             end: Position {
              line: 510,
              column: 10,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: Identifier(
            Identifier {
             id: "replaceChars",
             span: Span {
              start: Position {
               line: 510,
               column: 13,
              },
              end: Position {
               line: 510,
               column: 25,
              },
             },
            },
           ),
           arguments: [
            Identifier(
             Identifier {
              id: "lowerChars",
              span: Span {
               start: Position {
                line: 510,
                column: 26,
               },
               end: Position {
                line: 510,
                column: 36,
               },
              },
             },
            ),
            Identifier(
             Identifier {
              id: "upperChars",
              span: Span {
               start: Position {
                line: 510,
                column: 37,
               },
               end: Position {
                line: 510,
                column: 47,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "addContextFrom",
            span: Span {
             start: Position {
              line: 525,
              column: 3,
             },
             end: Position {
              line: 525,
              column: 17,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "a",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "b",
              },
             ),
             body: BinaryOperation(
              BinaryOperation {
               left: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "substring",
                   span: Span {
                    start: Position {
                     line: 525,
                     column: 26,
                    },
                    end: Position {
                     line: 525,
                     column: 35,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Integer(
                   Integer {
                    value: "0",
                    span: Span {
                     start: Position {
                      line: 525,
                      column: 36,
                     },
                     end: Position {
                      line: 525,
                      column: 37,
                     },
                    },
                   },
                  ),
                  Integer(
                   Integer {
                    value: "0",
                    span: Span {
                     start: Position {
                      line: 525,
                      column: 38,
                     },
                     end: Position {
                      line: 525,
                      column: 39,
                     },
                    },
                   },
                  ),
                  Identifier(
                   Identifier {
                    id: "a",
                    span: Span {
                     start: Position {
                      line: 525,
                      column: 40,
                     },
                     end: Position {
                      line: 525,
                      column: 41,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               operator: Addition,
               right: Identifier(
                Identifier {
                 id: "b",
                 span: Span {
                  start: Position {
                   line: 525,
                   column: 44,
                  },
                  end: Position {
                   line: 525,
                   column: 45,
                  },
                 },
                },
               ),
              },
             ),
             span: Span {
              start: Position {
               line: 525,
               column: 23,
              },
              end: Position {
               line: 525,
               column: 45,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 525,
             column: 20,
            },
            end: Position {
             line: 525,
             column: 45,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "splitString",
            span: Span {
             start: Position {
              line: 536,
              column: 3,
             },
             end: Position {
              line: 536,
              column: 14,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "_sep",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "_s",
              },
             ),
             body: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "sep",
                     span: Span {
                      start: Position {
                       line: 538,
                       column: 7,
                      },
                      end: Position {
                       line: 538,
                       column: 10,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "builtins",
                        span: Span {
                         start: Position {
                          line: 538,
                          column: 13,
                         },
                         end: Position {
                          line: 538,
                          column: 21,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "unsafeDiscardStringContext",
                         span: Span {
                          start: Position {
                           line: 538,
                           column: 22,
                          },
                          end: Position {
                           line: 538,
                           column: 48,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "_sep",
                       span: Span {
                        start: Position {
                         line: 538,
                         column: 49,
                        },
                        end: Position {
                         line: 538,
                         column: 53,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "s",
                     span: Span {
                      start: Position {
                       line: 539,
                       column: 7,
                      },
                      end: Position {
                       line: 539,
                       column: 8,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "builtins",
                        span: Span {
                         start: Position {
                          line: 539,
                          column: 11,
                         },
                         end: Position {
                          line: 539,
                          column: 19,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "unsafeDiscardStringContext",
                         span: Span {
                          start: Position {
                           line: 539,
                           column: 20,
                          },
                          end: Position {
                           line: 539,
                           column: 46,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "_s",
                       span: Span {
                        start: Position {
                         line: 539,
                         column: 47,
                        },
                        end: Position {
                         line: 539,
                         column: 49,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "splits",
                     span: Span {
                      start: Position {
                       line: 540,
                       column: 7,
                      },
                      end: Position {
                       line: 540,
                       column: 13,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "builtins",
                        span: Span {
                         start: Position {
                          line: 540,
                          column: 16,
                         },
                         end: Position {
                          line: 540,
                          column: 24,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "filter",
                         span: Span {
                          start: Position {
                           line: 540,
                           column: 25,
                          },
                          end: Position {
                           line: 540,
                           column: 31,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     PropertyAccess(
                      PropertyAccess {
                       expression: Identifier(
                        Identifier {
                         id: "builtins",
                         span: Span {
                          start: Position {
                           line: 540,
                           column: 32,
                          },
                          end: Position {
                           line: 540,
                           column: 40,
                          },
                         },
                        },
                       ),
                       attribute_path: [
                        Raw(
                         PartRaw {
                          content: "isString",
                          span: Span {
                           start: Position {
                            line: 540,
                            column: 41,
                           },
                           end: Position {
                            line: 540,
                            column: 49,
                           },
                          },
                         },
                        ),
                       ],
                       default: None,
                      },
                     ),
                     FunctionApplication(
                      FunctionApplication {
                       function: PropertyAccess(
                        PropertyAccess {
                         expression: Identifier(
                          Identifier {
                           id: "builtins",
                           span: Span {
                            start: Position {
                             line: 540,
                             column: 51,
                            },
                            end: Position {
                             line: 540,
                             column: 59,
                            },
                           },
                          },
                         ),
                         attribute_path: [
                          Raw(
                           PartRaw {
                            content: "split",
                            span: Span {
                             start: Position {
                              line: 540,
                              column: 60,
                             },
                             end: Position {
                              line: 540,
                              column: 65,
                             },
                            },
                           },
                          ),
                         ],
                         default: None,
                        },
                       ),
                       arguments: [
                        FunctionApplication(
                         FunctionApplication {
                          function: Identifier(
                           Identifier {
                            id: "escapeRegex",
                            span: Span {
                             start: Position {
                              line: 540,
                              column: 67,
                             },
                             end: Position {
                              line: 540,
                              column: 78,
                             },
                            },
                           },
                          ),
                          arguments: [
                           Identifier(
                            Identifier {
                             id: "sep",
                             span: Span {
                              start: Position {
                               line: 540,
                               column: 79,
                              },
                              end: Position {
                               line: 540,
                               column: 82,
                              },
                             },
                            },
                           ),
                          ],
                         },
                        ),
                        Identifier(
                         Identifier {
                          id: "s",
                          span: Span {
                           start: Position {
                            line: 540,
                            column: 84,
                           },
                           end: Position {
                            line: 540,
                            column: 85,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
               ],
               target: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "map",
                   span: Span {
                    start: Position {
                     line: 542,
                     column: 7,
                    },
                    end: Position {
                     line: 542,
                     column: 10,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Function(
                   Function {
                    head: Simple(
                     FunctionHeadSimple {
                      identifier: "v",
                     },
                    ),
                    body: FunctionApplication(
                     FunctionApplication {
                      function: Identifier(
                       Identifier {
                        id: "addContextFrom",
                        span: Span {
                         start: Position {
                          line: 542,
                          column: 15,
                         },
                         end: Position {
                          line: 542,
                          column: 29,
                         },
                        },
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "_sep",
                         span: Span {
                          start: Position {
                           line: 542,
                           column: 30,
                          },
                          end: Position {
                           line: 542,
                           column: 34,
                          },
                         },
                        },
                       ),
                       FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "addContextFrom",
                           span: Span {
                            start: Position {
                             line: 542,
                             column: 36,
                            },
                            end: Position {
                             line: 542,
                             column: 50,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Identifier(
                           Identifier {
                            id: "_s",
                            span: Span {
                             start: Position {
                              line: 542,
                              column: 51,
                             },
                             end: Position {
                              line: 542,
                              column: 53,
                             },
                            },
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "v",
                            span: Span {
                             start: Position {
                              line: 542,
                              column: 54,
                             },
                             end: Position {
                              line: 542,
                              column: 55,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      ],
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 542,
                      column: 12,
                     },
                     end: Position {
                      line: 542,
                      column: 56,
                     },
                    },
                   },
                  ),
                  Identifier(
                   Identifier {
                    id: "splits",
                    span: Span {
                     start: Position {
                      line: 542,
                      column: 58,
                     },
                     end: Position {
                      line: 542,
                      column: 64,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 537,
                 column: 5,
                },
                end: Position {
                 line: 542,
                 column: 64,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 536,
               column: 23,
              },
              end: Position {
               line: 542,
               column: 64,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 536,
             column: 17,
            },
            end: Position {
             line: 542,
             column: 64,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "removePrefix",
            span: Span {
             start: Position {
              line: 554,
              column: 3,
             },
             end: Position {
              line: 554,
              column: 15,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "prefix",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "str",
              },
             ),
             body: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "preLen",
                     span: Span {
                      start: Position {
                       line: 560,
                       column: 7,
                      },
                      end: Position {
                       line: 560,
                       column: 13,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "stringLength",
                      span: Span {
                       start: Position {
                        line: 560,
                        column: 16,
                       },
                       end: Position {
                        line: 560,
                        column: 28,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "prefix",
                       span: Span {
                        start: Position {
                         line: 560,
                         column: 29,
                        },
                        end: Position {
                         line: 560,
                         column: 35,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "sLen",
                     span: Span {
                      start: Position {
                       line: 561,
                       column: 7,
                      },
                      end: Position {
                       line: 561,
                       column: 11,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "stringLength",
                      span: Span {
                       start: Position {
                        line: 561,
                        column: 14,
                       },
                       end: Position {
                        line: 561,
                        column: 26,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "str",
                       span: Span {
                        start: Position {
                         line: 561,
                         column: 27,
                        },
                        end: Position {
                         line: 561,
                         column: 30,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
               ],
               target: IfThenElse(
                IfThenElse {
                 predicate: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "hasPrefix",
                     span: Span {
                      start: Position {
                       line: 563,
                       column: 10,
                      },
                      end: Position {
                       line: 563,
                       column: 19,
                      },
                     },
                    },
                   ),
                   arguments: [
                    Identifier(
                     Identifier {
                      id: "prefix",
                      span: Span {
                       start: Position {
                        line: 563,
                        column: 20,
                       },
                       end: Position {
                        line: 563,
                        column: 26,
                       },
                      },
                     },
                    ),
                    Identifier(
                     Identifier {
                      id: "str",
                      span: Span {
                       start: Position {
                        line: 563,
                        column: 27,
                       },
                       end: Position {
                        line: 563,
                        column: 30,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                 then: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "substring",
                     span: Span {
                      start: Position {
                       line: 564,
                       column: 9,
                      },
                      end: Position {
                       line: 564,
                       column: 18,
                      },
                     },
                    },
                   ),
                   arguments: [
                    Identifier(
                     Identifier {
                      id: "preLen",
                      span: Span {
                       start: Position {
                        line: 564,
                        column: 19,
                       },
                       end: Position {
                        line: 564,
                        column: 25,
                       },
                      },
                     },
                    ),
                    BinaryOperation(
                     BinaryOperation {
                      left: Identifier(
                       Identifier {
                        id: "sLen",
                        span: Span {
                         start: Position {
                          line: 564,
                          column: 27,
                         },
                         end: Position {
                          line: 564,
                          column: 31,
                         },
                        },
                       },
                      ),
                      operator: Subtraction,
                      right: Identifier(
                       Identifier {
                        id: "preLen",
                        span: Span {
                         start: Position {
                          line: 564,
                          column: 34,
                         },
                         end: Position {
                          line: 564,
                          column: 40,
                         },
                        },
                       },
                      ),
                     },
                    ),
                    Identifier(
                     Identifier {
                      id: "str",
                      span: Span {
                       start: Position {
                        line: 564,
                        column: 42,
                       },
                       end: Position {
                        line: 564,
                        column: 45,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                 else_: Identifier(
                  Identifier {
                   id: "str",
                   span: Span {
                    start: Position {
                     line: 566,
                     column: 9,
                    },
                    end: Position {
                     line: 566,
                     column: 12,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 563,
                   column: 7,
                  },
                  end: Position {
                   line: 566,
                   column: 12,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 559,
                 column: 5,
                },
                end: Position {
                 line: 566,
                 column: 12,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 558,
               column: 5,
              },
              end: Position {
               line: 566,
               column: 12,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 556,
             column: 5,
            },
            end: Position {
             line: 566,
             column: 12,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "removeSuffix",
            span: Span {
             start: Position {
              line: 578,
              column: 3,
             },
             end: Position {
              line: 578,
              column: 15,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "suffix",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "str",
              },
             ),
             body: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "sufLen",
                     span: Span {
                      start: Position {
                       line: 584,
                       column: 7,
                      },
                      end: Position {
                       line: 584,
                       column: 13,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "stringLength",
                      span: Span {
                       start: Position {
                        line: 584,
                        column: 16,
                       },
                       end: Position {
                        line: 584,
                        column: 28,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "suffix",
                       span: Span {
                        start: Position {
                         line: 584,
                         column: 29,
                        },
                        end: Position {
                         line: 584,
                         column: 35,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "sLen",
                     span: Span {
                      start: Position {
                       line: 585,
                       column: 7,
                      },
                      end: Position {
                       line: 585,
                       column: 11,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "stringLength",
                      span: Span {
                       start: Position {
                        line: 585,
                        column: 14,
                       },
                       end: Position {
                        line: 585,
                        column: 26,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "str",
                       span: Span {
                        start: Position {
                         line: 585,
                         column: 27,
                        },
                        end: Position {
                         line: 585,
                         column: 30,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
               ],
               target: IfThenElse(
                IfThenElse {
                 predicate: BinaryOperation(
                  BinaryOperation {
                   left: BinaryOperation(
                    BinaryOperation {
                     left: Identifier(
                      Identifier {
                       id: "sufLen",
                       span: Span {
                        start: Position {
                         line: 587,
                         column: 10,
                        },
                        end: Position {
                         line: 587,
                         column: 16,
                        },
                       },
                      },
                     ),
                     operator: LessThanOrEqualTo,
                     right: Identifier(
                      Identifier {
                       id: "sLen",
                       span: Span {
                        start: Position {
                         line: 587,
                         column: 20,
                        },
                        end: Position {
                         line: 587,
                         column: 24,
                        },
                       },
                      },
                     ),
                    },
                   ),
                   operator: LogicalAnd,
                   right: BinaryOperation(
                    BinaryOperation {
                     left: Identifier(
                      Identifier {
                       id: "suffix",
                       span: Span {
                        start: Position {
                         line: 587,
                         column: 28,
                        },
                        end: Position {
                         line: 587,
                         column: 34,
                        },
                       },
                      },
                     ),
                     operator: EqualTo,
                     right: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "substring",
                         span: Span {
                          start: Position {
                           line: 587,
                           column: 38,
                          },
                          end: Position {
                           line: 587,
                           column: 47,
                          },
                         },
                        },
                       ),
                       arguments: [
                        BinaryOperation(
                         BinaryOperation {
                          left: Identifier(
                           Identifier {
                            id: "sLen",
                            span: Span {
                             start: Position {
                              line: 587,
                              column: 49,
                             },
                             end: Position {
                              line: 587,
                              column: 53,
                             },
                            },
                           },
                          ),
                          operator: Subtraction,
                          right: Identifier(
                           Identifier {
                            id: "sufLen",
                            span: Span {
                             start: Position {
                              line: 587,
                              column: 56,
                             },
                             end: Position {
                              line: 587,
                              column: 62,
                             },
                            },
                           },
                          ),
                         },
                        ),
                        Identifier(
                         Identifier {
                          id: "sufLen",
                          span: Span {
                           start: Position {
                            line: 587,
                            column: 64,
                           },
                           end: Position {
                            line: 587,
                            column: 70,
                           },
                          },
                         },
                        ),
                        Identifier(
                         Identifier {
                          id: "str",
                          span: Span {
                           start: Position {
                            line: 587,
                            column: 71,
                           },
                           end: Position {
                            line: 587,
                            column: 74,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    },
                   ),
                  },
                 ),
                 then: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "substring",
                     span: Span {
                      start: Position {
                       line: 588,
                       column: 9,
                      },
                      end: Position {
                       line: 588,
                       column: 18,
                      },
                     },
                    },
                   ),
                   arguments: [
                    Integer(
                     Integer {
                      value: "0",
                      span: Span {
                       start: Position {
                        line: 588,
                        column: 19,
                       },
                       end: Position {
                        line: 588,
                        column: 20,
                       },
                      },
                     },
                    ),
                    BinaryOperation(
                     BinaryOperation {
                      left: Identifier(
                       Identifier {
                        id: "sLen",
                        span: Span {
                         start: Position {
                          line: 588,
                          column: 22,
                         },
                         end: Position {
                          line: 588,
                          column: 26,
                         },
                        },
                       },
                      ),
                      operator: Subtraction,
                      right: Identifier(
                       Identifier {
                        id: "sufLen",
                        span: Span {
                         start: Position {
                          line: 588,
                          column: 29,
                         },
                         end: Position {
                          line: 588,
                          column: 35,
                         },
                        },
                       },
                      ),
                     },
                    ),
                    Identifier(
                     Identifier {
                      id: "str",
                      span: Span {
                       start: Position {
                        line: 588,
                        column: 37,
                       },
                       end: Position {
                        line: 588,
                        column: 40,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                 else_: Identifier(
                  Identifier {
                   id: "str",
                   span: Span {
                    start: Position {
                     line: 590,
                     column: 9,
                    },
                    end: Position {
                     line: 590,
                     column: 12,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 587,
                   column: 7,
                  },
                  end: Position {
                   line: 590,
                   column: 12,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 583,
                 column: 5,
                },
                end: Position {
                 line: 590,
                 column: 12,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 582,
               column: 5,
              },
              end: Position {
               line: 590,
               column: 12,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 580,
             column: 5,
            },
            end: Position {
             line: 590,
             column: 12,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "versionOlder",
            span: Span {
             start: Position {
              line: 600,
              column: 3,
             },
             end: Position {
              line: 600,
              column: 15,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "v1",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "v2",
              },
             ),
             body: BinaryOperation(
              BinaryOperation {
               left: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "compareVersions",
                   span: Span {
                    start: Position {
                     line: 600,
                     column: 26,
                    },
                    end: Position {
                     line: 600,
                     column: 41,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "v2",
                    span: Span {
                     start: Position {
                      line: 600,
                      column: 42,
                     },
                     end: Position {
                      line: 600,
                      column: 44,
                     },
                    },
                   },
                  ),
                  Identifier(
                   Identifier {
                    id: "v1",
                    span: Span {
                     start: Position {
                      line: 600,
                      column: 45,
                     },
                     end: Position {
                      line: 600,
                      column: 47,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               operator: EqualTo,
               right: Integer(
                Integer {
                 value: "1",
                 span: Span {
                  start: Position {
                   line: 600,
                   column: 51,
                  },
                  end: Position {
                   line: 600,
                   column: 52,
                  },
                 },
                },
               ),
              },
             ),
             span: Span {
              start: Position {
               line: 600,
               column: 22,
              },
              end: Position {
               line: 600,
               column: 52,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 600,
             column: 18,
            },
            end: Position {
             line: 600,
             column: 52,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "versionAtLeast",
            span: Span {
             start: Position {
              line: 612,
              column: 3,
             },
             end: Position {
              line: 612,
              column: 17,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "v1",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "v2",
              },
             ),
             body: UnaryOperation(
              UnaryOperation {
               operator: Not,
               operand: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "versionOlder",
                   span: Span {
                    start: Position {
                     line: 612,
                     column: 29,
                    },
                    end: Position {
                     line: 612,
                     column: 41,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "v1",
                    span: Span {
                     start: Position {
                      line: 612,
                      column: 42,
                     },
                     end: Position {
                      line: 612,
                      column: 44,
                     },
                    },
                   },
                  ),
                  Identifier(
                   Identifier {
                    id: "v2",
                    span: Span {
                     start: Position {
                      line: 612,
                      column: 45,
                     },
                     end: Position {
                      line: 612,
                      column: 47,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 612,
                 column: 28,
                },
                end: Position {
                 line: 612,
                 column: 47,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 612,
               column: 24,
              },
              end: Position {
               line: 612,
               column: 47,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 612,
             column: 20,
            },
            end: Position {
             line: 612,
             column: 47,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "getName",
            span: Span {
             start: Position {
              line: 624,
              column: 3,
             },
             end: Position {
              line: 624,
              column: 10,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "x",
            },
           ),
           body: LetIn(
            LetIn {
             bindings: [
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "parse",
                   span: Span {
                    start: Position {
                     line: 626,
                     column: 6,
                    },
                    end: Position {
                     line: 626,
                     column: 11,
                    },
                   },
                  },
                 ),
                ],
                to: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "drv",
                   },
                  ),
                  body: PropertyAccess(
                   PropertyAccess {
                    expression: FunctionApplication(
                     FunctionApplication {
                      function: Identifier(
                       Identifier {
                        id: "parseDrvName",
                        span: Span {
                         start: Position {
                          line: 626,
                          column: 20,
                         },
                         end: Position {
                          line: 626,
                          column: 32,
                         },
                        },
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "drv",
                         span: Span {
                          start: Position {
                           line: 626,
                           column: 33,
                          },
                          end: Position {
                           line: 626,
                           column: 36,
                          },
                         },
                        },
                       ),
                      ],
                     },
                    ),
                    attribute_path: [
                     Raw(
                      PartRaw {
                       content: "name",
                       span: Span {
                        start: Position {
                         line: 626,
                         column: 38,
                        },
                        end: Position {
                         line: 626,
                         column: 42,
                        },
                       },
                      },
                     ),
                    ],
                    default: None,
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 626,
                    column: 14,
                   },
                   end: Position {
                    line: 626,
                    column: 42,
                   },
                  },
                 },
                ),
               },
              ),
             ],
             target: IfThenElse(
              IfThenElse {
               predicate: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "isString",
                   span: Span {
                    start: Position {
                     line: 627,
                     column: 10,
                    },
                    end: Position {
                     line: 627,
                     column: 18,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "x",
                    span: Span {
                     start: Position {
                      line: 627,
                      column: 19,
                     },
                     end: Position {
                      line: 627,
                      column: 20,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               then: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "parse",
                   span: Span {
                    start: Position {
                     line: 628,
                     column: 12,
                    },
                    end: Position {
                     line: 628,
                     column: 17,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "x",
                    span: Span {
                     start: Position {
                      line: 628,
                      column: 18,
                     },
                     end: Position {
                      line: 628,
                      column: 19,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               else_: PropertyAccess(
                PropertyAccess {
                 expression: Identifier(
                  Identifier {
                   id: "x",
                   span: Span {
                    start: Position {
                     line: 629,
                     column: 12,
                    },
                    end: Position {
                     line: 629,
                     column: 13,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "pname",
                    span: Span {
                     start: Position {
                      line: 629,
                      column: 14,
                     },
                     end: Position {
                      line: 629,
                      column: 19,
                     },
                    },
                   },
                  ),
                 ],
                 default: Some(
                  FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "parse",
                      span: Span {
                       start: Position {
                        line: 629,
                        column: 24,
                       },
                       end: Position {
                        line: 629,
                        column: 29,
                       },
                      },
                     },
                    ),
                    arguments: [
                     PropertyAccess(
                      PropertyAccess {
                       expression: Identifier(
                        Identifier {
                         id: "x",
                         span: Span {
                          start: Position {
                           line: 629,
                           column: 30,
                          },
                          end: Position {
                           line: 629,
                           column: 31,
                          },
                         },
                        },
                       ),
                       attribute_path: [
                        Raw(
                         PartRaw {
                          content: "name",
                          span: Span {
                           start: Position {
                            line: 629,
                            column: 32,
                           },
                           end: Position {
                            line: 629,
                            column: 36,
                           },
                          },
                         },
                        ),
                       ],
                       default: None,
                      },
                     ),
                    ],
                   },
                  ),
                 ),
                },
               ),
               span: Span {
                start: Position {
                 line: 627,
                 column: 7,
                },
                end: Position {
                 line: 629,
                 column: 37,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 625,
               column: 4,
              },
              end: Position {
               line: 629,
               column: 37,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 624,
             column: 13,
            },
            end: Position {
             line: 629,
             column: 37,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "getVersion",
            span: Span {
             start: Position {
              line: 641,
              column: 3,
             },
             end: Position {
              line: 641,
              column: 13,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "x",
            },
           ),
           body: LetIn(
            LetIn {
             bindings: [
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "parse",
                   span: Span {
                    start: Position {
                     line: 643,
                     column: 6,
                    },
                    end: Position {
                     line: 643,
                     column: 11,
                    },
                   },
                  },
                 ),
                ],
                to: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "drv",
                   },
                  ),
                  body: PropertyAccess(
                   PropertyAccess {
                    expression: FunctionApplication(
                     FunctionApplication {
                      function: Identifier(
                       Identifier {
                        id: "parseDrvName",
                        span: Span {
                         start: Position {
                          line: 643,
                          column: 20,
                         },
                         end: Position {
                          line: 643,
                          column: 32,
                         },
                        },
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "drv",
                         span: Span {
                          start: Position {
                           line: 643,
                           column: 33,
                          },
                          end: Position {
                           line: 643,
                           column: 36,
                          },
                         },
                        },
                       ),
                      ],
                     },
                    ),
                    attribute_path: [
                     Raw(
                      PartRaw {
                       content: "version",
                       span: Span {
                        start: Position {
                         line: 643,
                         column: 38,
                        },
                        end: Position {
                         line: 643,
                         column: 45,
                        },
                       },
                      },
                     ),
                    ],
                    default: None,
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 643,
                    column: 14,
                   },
                   end: Position {
                    line: 643,
                    column: 45,
                   },
                  },
                 },
                ),
               },
              ),
             ],
             target: IfThenElse(
              IfThenElse {
               predicate: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "isString",
                   span: Span {
                    start: Position {
                     line: 644,
                     column: 10,
                    },
                    end: Position {
                     line: 644,
                     column: 18,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "x",
                    span: Span {
                     start: Position {
                      line: 644,
                      column: 19,
                     },
                     end: Position {
                      line: 644,
                      column: 20,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               then: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "parse",
                   span: Span {
                    start: Position {
                     line: 645,
                     column: 12,
                    },
                    end: Position {
                     line: 645,
                     column: 17,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "x",
                    span: Span {
                     start: Position {
                      line: 645,
                      column: 18,
                     },
                     end: Position {
                      line: 645,
                      column: 19,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               else_: PropertyAccess(
                PropertyAccess {
                 expression: Identifier(
                  Identifier {
                   id: "x",
                   span: Span {
                    start: Position {
                     line: 646,
                     column: 12,
                    },
                    end: Position {
                     line: 646,
                     column: 13,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "version",
                    span: Span {
                     start: Position {
                      line: 646,
                      column: 14,
                     },
                     end: Position {
                      line: 646,
                      column: 21,
                     },
                    },
                   },
                  ),
                 ],
                 default: Some(
                  FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "parse",
                      span: Span {
                       start: Position {
                        line: 646,
                        column: 26,
                       },
                       end: Position {
                        line: 646,
                        column: 31,
                       },
                      },
                     },
                    ),
                    arguments: [
                     PropertyAccess(
                      PropertyAccess {
                       expression: Identifier(
                        Identifier {
                         id: "x",
                         span: Span {
                          start: Position {
                           line: 646,
                           column: 32,
                          },
                          end: Position {
                           line: 646,
                           column: 33,
                          },
                         },
                        },
                       ),
                       attribute_path: [
                        Raw(
                         PartRaw {
                          content: "name",
                          span: Span {
                           start: Position {
                            line: 646,
                            column: 34,
                           },
                           end: Position {
                            line: 646,
                            column: 38,
                           },
                          },
                         },
                        ),
                       ],
                       default: None,
                      },
                     ),
                    ],
                   },
                  ),
                 ),
                },
               ),
               span: Span {
                start: Position {
                 line: 644,
                 column: 7,
                },
                end: Position {
                 line: 646,
                 column: 39,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 642,
               column: 4,
              },
              end: Position {
               line: 646,
               column: 39,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 641,
             column: 16,
            },
            end: Position {
             line: 646,
             column: 39,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "nameFromURL",
            span: Span {
             start: Position {
              line: 657,
              column: 3,
             },
             end: Position {
              line: 657,
              column: 14,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "url",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "sep",
              },
             ),
             body: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "components",
                     span: Span {
                      start: Position {
                       line: 659,
                       column: 7,
                      },
                      end: Position {
                       line: 659,
                       column: 17,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "splitString",
                      span: Span {
                       start: Position {
                        line: 659,
                        column: 20,
                       },
                       end: Position {
                        line: 659,
                        column: 31,
                       },
                      },
                     },
                    ),
                    arguments: [
                     String(
                      String_ {
                       parts: [
                        Raw(
                         PartRaw {
                          content: "/",
                          span: Span {
                           start: Position {
                            line: 659,
                            column: 33,
                           },
                           end: Position {
                            line: 659,
                            column: 34,
                           },
                          },
                         },
                        ),
                       ],
                       span: Span {
                        start: Position {
                         line: 659,
                         column: 32,
                        },
                        end: Position {
                         line: 659,
                         column: 35,
                        },
                       },
                      },
                     ),
                     Identifier(
                      Identifier {
                       id: "url",
                       span: Span {
                        start: Position {
                         line: 659,
                         column: 36,
                        },
                        end: Position {
                         line: 659,
                         column: 39,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "filename",
                     span: Span {
                      start: Position {
                       line: 660,
                       column: 7,
                      },
                      end: Position {
                       line: 660,
                       column: 15,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "lib",
                        span: Span {
                         start: Position {
                          line: 660,
                          column: 18,
                         },
                         end: Position {
                          line: 660,
                          column: 21,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "last",
                         span: Span {
                          start: Position {
                           line: 660,
                           column: 22,
                          },
                          end: Position {
                           line: 660,
                           column: 26,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "components",
                       span: Span {
                        start: Position {
                         line: 660,
                         column: 27,
                        },
                        end: Position {
                         line: 660,
                         column: 37,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "name",
                     span: Span {
                      start: Position {
                       line: 661,
                       column: 7,
                      },
                      end: Position {
                       line: 661,
                       column: 11,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "head",
                      span: Span {
                       start: Position {
                        line: 661,
                        column: 14,
                       },
                       end: Position {
                        line: 661,
                        column: 18,
                       },
                      },
                     },
                    ),
                    arguments: [
                     FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "splitString",
                         span: Span {
                          start: Position {
                           line: 661,
                           column: 20,
                          },
                          end: Position {
                           line: 661,
                           column: 31,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "sep",
                          span: Span {
                           start: Position {
                            line: 661,
                            column: 32,
                           },
                           end: Position {
                            line: 661,
                            column: 35,
                           },
                          },
                         },
                        ),
                        Identifier(
                         Identifier {
                          id: "filename",
                          span: Span {
                           start: Position {
                            line: 661,
                            column: 36,
                           },
                           end: Position {
                            line: 661,
                            column: 44,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
               ],
               target: Assert(
                Assert {
                 expression: BinaryOperation(
                  BinaryOperation {
                   left: Identifier(
                    Identifier {
                     id: "name",
                     span: Span {
                      start: Position {
                       line: 662,
                       column: 15,
                      },
                      end: Position {
                       line: 662,
                       column: 19,
                      },
                     },
                    },
                   ),
                   operator: NotEqualTo,
                   right: Identifier(
                    Identifier {
                     id: "filename",
                     span: Span {
                      start: Position {
                       line: 662,
                       column: 23,
                      },
                      end: Position {
                       line: 662,
                       column: 31,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 target: Identifier(
                  Identifier {
                   id: "name",
                   span: Span {
                    start: Position {
                     line: 662,
                     column: 33,
                    },
                    end: Position {
                     line: 662,
                     column: 37,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 662,
                   column: 8,
                  },
                  end: Position {
                   line: 662,
                   column: 37,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 658,
                 column: 5,
                },
                end: Position {
                 line: 662,
                 column: 37,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 657,
               column: 22,
              },
              end: Position {
               line: 662,
               column: 37,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 657,
             column: 17,
            },
            end: Position {
             line: 662,
             column: 37,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "enableFeature",
            span: Span {
             start: Position {
              line: 673,
              column: 3,
             },
             end: Position {
              line: 673,
              column: 16,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "enable",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "feat",
              },
             ),
             body: Assert(
              Assert {
               expression: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "isString",
                   span: Span {
                    start: Position {
                     line: 674,
                     column: 12,
                    },
                    end: Position {
                     line: 674,
                     column: 20,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "feat",
                    span: Span {
                     start: Position {
                      line: 674,
                      column: 21,
                     },
                     end: Position {
                      line: 674,
                      column: 25,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               target: String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--",
                    span: Span {
                     start: Position {
                      line: 675,
                      column: 6,
                     },
                     end: Position {
                      line: 675,
                      column: 49,
                     },
                    },
                   },
                  ),
                  Interpolation(
                   PartInterpolation {
                    expression: IfThenElse(
                     IfThenElse {
                      predicate: Identifier(
                       Identifier {
                        id: "enable",
                        span: Span {
                         start: Position {
                          line: 675,
                          column: 13,
                         },
                         end: Position {
                          line: 675,
                          column: 19,
                         },
                        },
                       },
                      ),
                      then: String(
                       String_ {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "enable",
                           span: Span {
                            start: Position {
                             line: 675,
                             column: 26,
                            },
                            end: Position {
                             line: 675,
                             column: 32,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 675,
                          column: 25,
                         },
                         end: Position {
                          line: 675,
                          column: 33,
                         },
                        },
                       },
                      ),
                      else_: String(
                       String_ {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "disable",
                           span: Span {
                            start: Position {
                             line: 675,
                             column: 40,
                            },
                            end: Position {
                             line: 675,
                             column: 47,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 675,
                          column: 39,
                         },
                         end: Position {
                          line: 675,
                          column: 48,
                         },
                        },
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 675,
                        column: 10,
                       },
                       end: Position {
                        line: 675,
                        column: 48,
                       },
                      },
                     },
                    ),
                   },
                  ),
                  Raw(
                   PartRaw {
                    content: "-",
                    span: Span {
                     start: Position {
                      line: 675,
                      column: 6,
                     },
                     end: Position {
                      line: 675,
                      column: 50,
                     },
                    },
                   },
                  ),
                  Interpolation(
                   PartInterpolation {
                    expression: Identifier(
                     Identifier {
                      id: "feat",
                      span: Span {
                       start: Position {
                        line: 675,
                        column: 52,
                       },
                       end: Position {
                        line: 675,
                        column: 56,
                       },
                      },
                     },
                    ),
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 675,
                   column: 5,
                  },
                  end: Position {
                   line: 675,
                   column: 58,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 674,
                 column: 5,
                },
                end: Position {
                 line: 675,
                 column: 58,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 673,
               column: 27,
              },
              end: Position {
               line: 675,
               column: 58,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 673,
             column: 19,
            },
            end: Position {
             line: 675,
             column: 58,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "enableFeatureAs",
            span: Span {
             start: Position {
              line: 686,
              column: 3,
             },
             end: Position {
              line: 686,
              column: 18,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "enable",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "feat",
              },
             ),
             body: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "value",
                },
               ),
               body: BinaryOperation(
                BinaryOperation {
                 left: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "enableFeature",
                     span: Span {
                      start: Position {
                       line: 686,
                       column: 42,
                      },
                      end: Position {
                       line: 686,
                       column: 55,
                      },
                     },
                    },
                   ),
                   arguments: [
                    Identifier(
                     Identifier {
                      id: "enable",
                      span: Span {
                       start: Position {
                        line: 686,
                        column: 56,
                       },
                       end: Position {
                        line: 686,
                        column: 62,
                       },
                      },
                     },
                    ),
                    Identifier(
                     Identifier {
                      id: "feat",
                      span: Span {
                       start: Position {
                        line: 686,
                        column: 63,
                       },
                       end: Position {
                        line: 686,
                        column: 67,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                 operator: Addition,
                 right: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "optionalString",
                     span: Span {
                      start: Position {
                       line: 686,
                       column: 70,
                      },
                      end: Position {
                       line: 686,
                       column: 84,
                      },
                     },
                    },
                   ),
                   arguments: [
                    Identifier(
                     Identifier {
                      id: "enable",
                      span: Span {
                       start: Position {
                        line: 686,
                        column: 85,
                       },
                       end: Position {
                        line: 686,
                        column: 91,
                       },
                      },
                     },
                    ),
                    String(
                     String_ {
                      parts: [
                       Raw(
                        PartRaw {
                         content: "=",
                         span: Span {
                          start: Position {
                           line: 686,
                           column: 93,
                          },
                          end: Position {
                           line: 686,
                           column: 102,
                          },
                         },
                        },
                       ),
                       Interpolation(
                        PartInterpolation {
                         expression: Identifier(
                          Identifier {
                           id: "value",
                           span: Span {
                            start: Position {
                             line: 686,
                             column: 96,
                            },
                            end: Position {
                             line: 686,
                             column: 101,
                            },
                           },
                          },
                         ),
                        },
                       ),
                      ],
                      span: Span {
                       start: Position {
                        line: 686,
                        column: 92,
                       },
                       end: Position {
                        line: 686,
                        column: 103,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                },
               ),
               span: Span {
                start: Position {
                 line: 686,
                 column: 35,
                },
                end: Position {
                 line: 686,
                 column: 103,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 686,
               column: 29,
              },
              end: Position {
               line: 686,
               column: 103,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 686,
             column: 21,
            },
            end: Position {
             line: 686,
             column: 103,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "withFeature",
            span: Span {
             start: Position {
              line: 697,
              column: 3,
             },
             end: Position {
              line: 697,
              column: 14,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "with_",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "feat",
              },
             ),
             body: Assert(
              Assert {
               expression: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "isString",
                   span: Span {
                    start: Position {
                     line: 698,
                     column: 12,
                    },
                    end: Position {
                     line: 698,
                     column: 20,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "feat",
                    span: Span {
                     start: Position {
                      line: 698,
                      column: 21,
                     },
                     end: Position {
                      line: 698,
                      column: 25,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               target: String(
                String_ {
                 parts: [
                  Raw(
                   PartRaw {
                    content: "--",
                    span: Span {
                     start: Position {
                      line: 699,
                      column: 6,
                     },
                     end: Position {
                      line: 699,
                      column: 46,
                     },
                    },
                   },
                  ),
                  Interpolation(
                   PartInterpolation {
                    expression: IfThenElse(
                     IfThenElse {
                      predicate: Identifier(
                       Identifier {
                        id: "with_",
                        span: Span {
                         start: Position {
                          line: 699,
                          column: 13,
                         },
                         end: Position {
                          line: 699,
                          column: 18,
                         },
                        },
                       },
                      ),
                      then: String(
                       String_ {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "with",
                           span: Span {
                            start: Position {
                             line: 699,
                             column: 25,
                            },
                            end: Position {
                             line: 699,
                             column: 29,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 699,
                          column: 24,
                         },
                         end: Position {
                          line: 699,
                          column: 30,
                         },
                        },
                       },
                      ),
                      else_: String(
                       String_ {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "without",
                           span: Span {
                            start: Position {
                             line: 699,
                             column: 37,
                            },
                            end: Position {
                             line: 699,
                             column: 44,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 699,
                          column: 36,
                         },
                         end: Position {
                          line: 699,
                          column: 45,
                         },
                        },
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 699,
                        column: 10,
                       },
                       end: Position {
                        line: 699,
                        column: 45,
                       },
                      },
                     },
                    ),
                   },
                  ),
                  Raw(
                   PartRaw {
                    content: "-",
                    span: Span {
                     start: Position {
                      line: 699,
                      column: 6,
                     },
                     end: Position {
                      line: 699,
                      column: 47,
                     },
                    },
                   },
                  ),
                  Interpolation(
                   PartInterpolation {
                    expression: Identifier(
                     Identifier {
                      id: "feat",
                      span: Span {
                       start: Position {
                        line: 699,
                        column: 49,
                       },
                       end: Position {
                        line: 699,
                        column: 53,
                       },
                      },
                     },
                    ),
                   },
                  ),
                 ],
                 span: Span {
                  start: Position {
                   line: 699,
                   column: 5,
                  },
                  end: Position {
                   line: 699,
                   column: 55,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 698,
                 column: 5,
                },
                end: Position {
                 line: 699,
                 column: 55,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 697,
               column: 24,
              },
              end: Position {
               line: 699,
               column: 55,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 697,
             column: 17,
            },
            end: Position {
             line: 699,
             column: 55,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "withFeatureAs",
            span: Span {
             start: Position {
              line: 710,
              column: 3,
             },
             end: Position {
              line: 710,
              column: 16,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "with_",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "feat",
              },
             ),
             body: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "value",
                },
               ),
               body: BinaryOperation(
                BinaryOperation {
                 left: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "withFeature",
                     span: Span {
                      start: Position {
                       line: 710,
                       column: 39,
                      },
                      end: Position {
                       line: 710,
                       column: 50,
                      },
                     },
                    },
                   ),
                   arguments: [
                    Identifier(
                     Identifier {
                      id: "with_",
                      span: Span {
                       start: Position {
                        line: 710,
                        column: 51,
                       },
                       end: Position {
                        line: 710,
                        column: 56,
                       },
                      },
                     },
                    ),
                    Identifier(
                     Identifier {
                      id: "feat",
                      span: Span {
                       start: Position {
                        line: 710,
                        column: 57,
                       },
                       end: Position {
                        line: 710,
                        column: 61,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                 operator: Addition,
                 right: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "optionalString",
                     span: Span {
                      start: Position {
                       line: 710,
                       column: 64,
                      },
                      end: Position {
                       line: 710,
                       column: 78,
                      },
                     },
                    },
                   ),
                   arguments: [
                    Identifier(
                     Identifier {
                      id: "with_",
                      span: Span {
                       start: Position {
                        line: 710,
                        column: 79,
                       },
                       end: Position {
                        line: 710,
                        column: 84,
                       },
                      },
                     },
                    ),
                    String(
                     String_ {
                      parts: [
                       Raw(
                        PartRaw {
                         content: "=",
                         span: Span {
                          start: Position {
                           line: 710,
                           column: 86,
                          },
                          end: Position {
                           line: 710,
                           column: 95,
                          },
                         },
                        },
                       ),
                       Interpolation(
                        PartInterpolation {
                         expression: Identifier(
                          Identifier {
                           id: "value",
                           span: Span {
                            start: Position {
                             line: 710,
                             column: 89,
                            },
                            end: Position {
                             line: 710,
                             column: 94,
                            },
                           },
                          },
                         ),
                        },
                       ),
                      ],
                      span: Span {
                       start: Position {
                        line: 710,
                        column: 85,
                       },
                       end: Position {
                        line: 710,
                        column: 96,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                },
               ),
               span: Span {
                start: Position {
                 line: 710,
                 column: 32,
                },
                end: Position {
                 line: 710,
                 column: 96,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 710,
               column: 26,
              },
              end: Position {
               line: 710,
               column: 96,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 710,
             column: 19,
            },
            end: Position {
             line: 710,
             column: 96,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "fixedWidthString",
            span: Span {
             start: Position {
              line: 724,
              column: 3,
             },
             end: Position {
              line: 724,
              column: 19,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "width",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "filler",
              },
             ),
             body: Function(
              Function {
               head: Simple(
                FunctionHeadSimple {
                 identifier: "str",
                },
               ),
               body: LetIn(
                LetIn {
                 bindings: [
                  KeyValue(
                   BindingKeyValue {
                    from: [
                     Raw(
                      PartRaw {
                       content: "strw",
                       span: Span {
                        start: Position {
                         line: 726,
                         column: 7,
                        },
                        end: Position {
                         line: 726,
                         column: 11,
                        },
                       },
                      },
                     ),
                    ],
                    to: FunctionApplication(
                     FunctionApplication {
                      function: PropertyAccess(
                       PropertyAccess {
                        expression: Identifier(
                         Identifier {
                          id: "lib",
                          span: Span {
                           start: Position {
                            line: 726,
                            column: 14,
                           },
                           end: Position {
                            line: 726,
                            column: 17,
                           },
                          },
                         },
                        ),
                        attribute_path: [
                         Raw(
                          PartRaw {
                           content: "stringLength",
                           span: Span {
                            start: Position {
                             line: 726,
                             column: 18,
                            },
                            end: Position {
                             line: 726,
                             column: 30,
                            },
                           },
                          },
                         ),
                        ],
                        default: None,
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "str",
                         span: Span {
                          start: Position {
                           line: 726,
                           column: 31,
                          },
                          end: Position {
                           line: 726,
                           column: 34,
                          },
                         },
                        },
                       ),
                      ],
                     },
                    ),
                   },
                  ),
                  KeyValue(
                   BindingKeyValue {
                    from: [
                     Raw(
                      PartRaw {
                       content: "reqWidth",
                       span: Span {
                        start: Position {
                         line: 727,
                         column: 7,
                        },
                        end: Position {
                         line: 727,
                         column: 15,
                        },
                       },
                      },
                     ),
                    ],
                    to: BinaryOperation(
                     BinaryOperation {
                      left: Identifier(
                       Identifier {
                        id: "width",
                        span: Span {
                         start: Position {
                          line: 727,
                          column: 18,
                         },
                         end: Position {
                          line: 727,
                          column: 23,
                         },
                        },
                       },
                      ),
                      operator: Subtraction,
                      right: FunctionApplication(
                       FunctionApplication {
                        function: PropertyAccess(
                         PropertyAccess {
                          expression: Identifier(
                           Identifier {
                            id: "lib",
                            span: Span {
                             start: Position {
                              line: 727,
                              column: 27,
                             },
                             end: Position {
                              line: 727,
                              column: 30,
                             },
                            },
                           },
                          ),
                          attribute_path: [
                           Raw(
                            PartRaw {
                             content: "stringLength",
                             span: Span {
                              start: Position {
                               line: 727,
                               column: 31,
                              },
                              end: Position {
                               line: 727,
                               column: 43,
                              },
                             },
                            },
                           ),
                          ],
                          default: None,
                         },
                        ),
                        arguments: [
                         Identifier(
                          Identifier {
                           id: "filler",
                           span: Span {
                            start: Position {
                             line: 727,
                             column: 44,
                            },
                            end: Position {
                             line: 727,
                             column: 50,
                            },
                           },
                          },
                         ),
                        ],
                       },
                      ),
                     },
                    ),
                   },
                  ),
                 ],
                 target: Assert(
                  Assert {
                   expression: FunctionApplication(
                    FunctionApplication {
                     function: PropertyAccess(
                      PropertyAccess {
                       expression: Identifier(
                        Identifier {
                         id: "lib",
                         span: Span {
                          start: Position {
                           line: 729,
                           column: 14,
                          },
                          end: Position {
                           line: 729,
                           column: 17,
                          },
                         },
                        },
                       ),
                       attribute_path: [
                        Raw(
                         PartRaw {
                          content: "assertMsg",
                          span: Span {
                           start: Position {
                            line: 729,
                            column: 18,
                           },
                           end: Position {
                            line: 729,
                            column: 27,
                           },
                          },
                         },
                        ),
                       ],
                       default: None,
                      },
                     ),
                     arguments: [
                      BinaryOperation(
                       BinaryOperation {
                        left: Identifier(
                         Identifier {
                          id: "strw",
                          span: Span {
                           start: Position {
                            line: 729,
                            column: 29,
                           },
                           end: Position {
                            line: 729,
                            column: 33,
                           },
                          },
                         },
                        ),
                        operator: LessThanOrEqualTo,
                        right: Identifier(
                         Identifier {
                          id: "width",
                          span: Span {
                           start: Position {
                            line: 729,
                            column: 37,
                           },
                           end: Position {
                            line: 729,
                            column: 42,
                           },
                          },
                         },
                        ),
                       },
                      ),
                      String(
                       String_ {
                        parts: [
                         Raw(
                          PartRaw {
                           content: "fixedWidthString: requested string length (",
                           span: Span {
                            start: Position {
                             line: 730,
                             column: 10,
                            },
                            end: Position {
                             line: 731,
                             column: 26,
                            },
                           },
                          },
                         ),
                         Interpolation(
                          PartInterpolation {
                           expression: FunctionApplication(
                            FunctionApplication {
                             function: Identifier(
                              Identifier {
                               id: "toString",
                               span: Span {
                                start: Position {
                                 line: 731,
                                 column: 11,
                                },
                                end: Position {
                                 line: 731,
                                 column: 19,
                                },
                               },
                              },
                             ),
                             arguments: [
                              Identifier(
                               Identifier {
                                id: "width",
                                span: Span {
                                 start: Position {
                                  line: 731,
                                  column: 20,
                                 },
                                 end: Position {
                                  line: 731,
                                  column: 25,
                                 },
                                },
                               },
                              ),
                             ],
                            },
                           ),
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: ") must not be shorter than actual length (",
                           span: Span {
                            start: Position {
                             line: 730,
                             column: 10,
                            },
                            end: Position {
                             line: 731,
                             column: 68,
                            },
                           },
                          },
                         ),
                         Interpolation(
                          PartInterpolation {
                           expression: FunctionApplication(
                            FunctionApplication {
                             function: Identifier(
                              Identifier {
                               id: "toString",
                               span: Span {
                                start: Position {
                                 line: 732,
                                 column: 13,
                                },
                                end: Position {
                                 line: 732,
                                 column: 21,
                                },
                               },
                              },
                             ),
                             arguments: [
                              Identifier(
                               Identifier {
                                id: "strw",
                                span: Span {
                                 start: Position {
                                  line: 732,
                                  column: 22,
                                 },
                                 end: Position {
                                  line: 732,
                                  column: 26,
                                 },
                                },
                               },
                              ),
                             ],
                            },
                           ),
                          },
                         ),
                         Raw(
                          PartRaw {
                           content: ")",
                           span: Span {
                            start: Position {
                             line: 730,
                             column: 10,
                            },
                            end: Position {
                             line: 732,
                             column: 28,
                            },
                           },
                          },
                         ),
                        ],
                        span: Span {
                         start: Position {
                          line: 730,
                          column: 9,
                         },
                         end: Position {
                          line: 732,
                          column: 29,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   target: IfThenElse(
                    IfThenElse {
                     predicate: BinaryOperation(
                      BinaryOperation {
                       left: Identifier(
                        Identifier {
                         id: "strw",
                         span: Span {
                          start: Position {
                           line: 733,
                           column: 10,
                          },
                          end: Position {
                           line: 733,
                           column: 14,
                          },
                         },
                        },
                       ),
                       operator: EqualTo,
                       right: Identifier(
                        Identifier {
                         id: "width",
                         span: Span {
                          start: Position {
                           line: 733,
                           column: 18,
                          },
                          end: Position {
                           line: 733,
                           column: 23,
                          },
                         },
                        },
                       ),
                      },
                     ),
                     then: Identifier(
                      Identifier {
                       id: "str",
                       span: Span {
                        start: Position {
                         line: 733,
                         column: 29,
                        },
                        end: Position {
                         line: 733,
                         column: 32,
                        },
                       },
                      },
                     ),
                     else_: BinaryOperation(
                      BinaryOperation {
                       left: Identifier(
                        Identifier {
                         id: "filler",
                         span: Span {
                          start: Position {
                           line: 733,
                           column: 38,
                          },
                          end: Position {
                           line: 733,
                           column: 44,
                          },
                         },
                        },
                       ),
                       operator: Addition,
                       right: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "fixedWidthString",
                           span: Span {
                            start: Position {
                             line: 733,
                             column: 47,
                            },
                            end: Position {
                             line: 733,
                             column: 63,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Identifier(
                           Identifier {
                            id: "reqWidth",
                            span: Span {
                             start: Position {
                              line: 733,
                              column: 64,
                             },
                             end: Position {
                              line: 733,
                              column: 72,
                             },
                            },
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "filler",
                            span: Span {
                             start: Position {
                              line: 733,
                              column: 73,
                             },
                             end: Position {
                              line: 733,
                              column: 79,
                             },
                            },
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "str",
                            span: Span {
                             start: Position {
                              line: 733,
                              column: 80,
                             },
                             end: Position {
                              line: 733,
                              column: 83,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     span: Span {
                      start: Position {
                       line: 733,
                       column: 7,
                      },
                      end: Position {
                       line: 733,
                       column: 83,
                      },
                     },
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 729,
                     column: 7,
                    },
                    end: Position {
                     line: 733,
                     column: 83,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 725,
                   column: 5,
                  },
                  end: Position {
                   line: 733,
                   column: 83,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 724,
                 column: 37,
                },
                end: Position {
                 line: 733,
                 column: 83,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 724,
               column: 29,
              },
              end: Position {
               line: 733,
               column: 83,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 724,
             column: 22,
            },
            end: Position {
             line: 733,
             column: 83,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "fixedWidthNumber",
            span: Span {
             start: Position {
              line: 741,
              column: 3,
             },
             end: Position {
              line: 741,
              column: 19,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "width",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "n",
              },
             ),
             body: FunctionApplication(
              FunctionApplication {
               function: Identifier(
                Identifier {
                 id: "fixedWidthString",
                 span: Span {
                  start: Position {
                   line: 741,
                   column: 32,
                  },
                  end: Position {
                   line: 741,
                   column: 48,
                  },
                 },
                },
               ),
               arguments: [
                Identifier(
                 Identifier {
                  id: "width",
                  span: Span {
                   start: Position {
                    line: 741,
                    column: 49,
                   },
                   end: Position {
                    line: 741,
                    column: 54,
                   },
                  },
                 },
                ),
                String(
                 String_ {
                  parts: [
                   Raw(
                    PartRaw {
                     content: "0",
                     span: Span {
                      start: Position {
                       line: 741,
                       column: 56,
                      },
                      end: Position {
                       line: 741,
                       column: 57,
                      },
                     },
                    },
                   ),
                  ],
                  span: Span {
                   start: Position {
                    line: 741,
                    column: 55,
                   },
                   end: Position {
                    line: 741,
                    column: 58,
                   },
                  },
                 },
                ),
                FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "toString",
                    span: Span {
                     start: Position {
                      line: 741,
                      column: 60,
                     },
                     end: Position {
                      line: 741,
                      column: 68,
                     },
                    },
                   },
                  ),
                  arguments: [
                   Identifier(
                    Identifier {
                     id: "n",
                     span: Span {
                      start: Position {
                       line: 741,
                       column: 69,
                      },
                      end: Position {
                       line: 741,
                       column: 70,
                      },
                     },
                    },
                   ),
                  ],
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 741,
               column: 29,
              },
              end: Position {
               line: 741,
               column: 71,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 741,
             column: 22,
            },
            end: Position {
             line: 741,
             column: 71,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "floatToString",
            span: Span {
             start: Position {
              line: 753,
              column: 3,
             },
             end: Position {
              line: 753,
              column: 16,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "float",
            },
           ),
           body: LetIn(
            LetIn {
             bindings: [
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "result",
                   span: Span {
                    start: Position {
                     line: 754,
                     column: 5,
                    },
                    end: Position {
                     line: 754,
                     column: 11,
                    },
                   },
                  },
                 ),
                ],
                to: FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "toString",
                    span: Span {
                     start: Position {
                      line: 754,
                      column: 14,
                     },
                     end: Position {
                      line: 754,
                      column: 22,
                     },
                    },
                   },
                  ),
                  arguments: [
                   Identifier(
                    Identifier {
                     id: "float",
                     span: Span {
                      start: Position {
                       line: 754,
                       column: 23,
                      },
                      end: Position {
                       line: 754,
                       column: 28,
                      },
                     },
                    },
                   ),
                  ],
                 },
                ),
               },
              ),
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "precise",
                   span: Span {
                    start: Position {
                     line: 755,
                     column: 5,
                    },
                    end: Position {
                     line: 755,
                     column: 12,
                    },
                   },
                  },
                 ),
                ],
                to: BinaryOperation(
                 BinaryOperation {
                  left: Identifier(
                   Identifier {
                    id: "float",
                    span: Span {
                     start: Position {
                      line: 755,
                      column: 15,
                     },
                     end: Position {
                      line: 755,
                      column: 20,
                     },
                    },
                   },
                  ),
                  operator: EqualTo,
                  right: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "fromJSON",
                      span: Span {
                       start: Position {
                        line: 755,
                        column: 24,
                       },
                       end: Position {
                        line: 755,
                        column: 32,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "result",
                       span: Span {
                        start: Position {
                         line: 755,
                         column: 33,
                        },
                        end: Position {
                         line: 755,
                         column: 39,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
               },
              ),
             ],
             target: FunctionApplication(
              FunctionApplication {
               function: PropertyAccess(
                PropertyAccess {
                 expression: Identifier(
                  Identifier {
                   id: "lib",
                   span: Span {
                    start: Position {
                     line: 756,
                     column: 6,
                    },
                    end: Position {
                     line: 756,
                     column: 9,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "warnIf",
                    span: Span {
                     start: Position {
                      line: 756,
                      column: 10,
                     },
                     end: Position {
                      line: 756,
                      column: 16,
                     },
                    },
                   },
                  ),
                 ],
                 default: None,
                },
               ),
               arguments: [
                UnaryOperation(
                 UnaryOperation {
                  operator: Not,
                  operand: Identifier(
                   Identifier {
                    id: "precise",
                    span: Span {
                     start: Position {
                      line: 756,
                      column: 19,
                     },
                     end: Position {
                      line: 756,
                      column: 26,
                     },
                    },
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 756,
                    column: 18,
                   },
                   end: Position {
                    line: 756,
                    column: 26,
                   },
                  },
                 },
                ),
                String(
                 String_ {
                  parts: [
                   Raw(
                    PartRaw {
                     content: "Imprecise conversion from float to string ",
                     span: Span {
                      start: Position {
                       line: 756,
                       column: 29,
                      },
                      end: Position {
                       line: 756,
                       column: 80,
                      },
                     },
                    },
                   ),
                   Interpolation(
                    PartInterpolation {
                     expression: Identifier(
                      Identifier {
                       id: "result",
                       span: Span {
                        start: Position {
                         line: 756,
                         column: 73,
                        },
                        end: Position {
                         line: 756,
                         column: 79,
                        },
                       },
                      },
                     ),
                    },
                   ),
                  ],
                  span: Span {
                   start: Position {
                    line: 756,
                    column: 28,
                   },
                   end: Position {
                    line: 756,
                    column: 81,
                   },
                  },
                 },
                ),
                Identifier(
                 Identifier {
                  id: "result",
                  span: Span {
                   start: Position {
                    line: 757,
                    column: 5,
                   },
                   end: Position {
                    line: 757,
                    column: 11,
                   },
                  },
                 },
                ),
               ],
              },
             ),
             span: Span {
              start: Position {
               line: 753,
               column: 26,
              },
              end: Position {
               line: 757,
               column: 11,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 753,
             column: 19,
            },
            end: Position {
             line: 757,
             column: 11,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "isCoercibleToString",
            span: Span {
             start: Position {
              line: 760,
              column: 3,
             },
             end: Position {
              line: 760,
              column: 22,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "x",
            },
           ),
           body: BinaryOperation(
            BinaryOperation {
             left: BinaryOperation(
              BinaryOperation {
               left: BinaryOperation(
                BinaryOperation {
                 left: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "elem",
                     span: Span {
                      start: Position {
                       line: 761,
                       column: 5,
                      },
                      end: Position {
                       line: 761,
                       column: 9,
                      },
                     },
                    },
                   ),
                   arguments: [
                    FunctionApplication(
                     FunctionApplication {
                      function: Identifier(
                       Identifier {
                        id: "typeOf",
                        span: Span {
                         start: Position {
                          line: 761,
                          column: 11,
                         },
                         end: Position {
                          line: 761,
                          column: 17,
                         },
                        },
                       },
                      ),
                      arguments: [
                       Identifier(
                        Identifier {
                         id: "x",
                         span: Span {
                          start: Position {
                           line: 761,
                           column: 18,
                          },
                          end: Position {
                           line: 761,
                           column: 19,
                          },
                         },
                        },
                       ),
                      ],
                     },
                    ),
                    List(
                     List {
                      elements: [
                       String(
                        String_ {
                         parts: [
                          Raw(
                           PartRaw {
                            content: "path",
                            span: Span {
                             start: Position {
                              line: 761,
                              column: 24,
                             },
                             end: Position {
                              line: 761,
                              column: 28,
                             },
                            },
                           },
                          ),
                         ],
                         span: Span {
                          start: Position {
                           line: 761,
                           column: 23,
                          },
                          end: Position {
                           line: 761,
                           column: 29,
                          },
                         },
                        },
                       ),
                       String(
                        String_ {
                         parts: [
                          Raw(
                           PartRaw {
                            content: "string",
                            span: Span {
                             start: Position {
                              line: 761,
                              column: 31,
                             },
                             end: Position {
                              line: 761,
                              column: 37,
                             },
                            },
                           },
                          ),
                         ],
                         span: Span {
                          start: Position {
                           line: 761,
                           column: 30,
                          },
                          end: Position {
                           line: 761,
                           column: 38,
                          },
                         },
                        },
                       ),
                       String(
                        String_ {
                         parts: [
                          Raw(
                           PartRaw {
                            content: "null",
                            span: Span {
                             start: Position {
                              line: 761,
                              column: 40,
                             },
                             end: Position {
                              line: 761,
                              column: 44,
                             },
                            },
                           },
                          ),
                         ],
                         span: Span {
                          start: Position {
                           line: 761,
                           column: 39,
                          },
                          end: Position {
                           line: 761,
                           column: 45,
                          },
                         },
                        },
                       ),
                       String(
                        String_ {
                         parts: [
                          Raw(
                           PartRaw {
                            content: "int",
                            span: Span {
                             start: Position {
                              line: 761,
                              column: 47,
                             },
                             end: Position {
                              line: 761,
                              column: 50,
                             },
                            },
                           },
                          ),
                         ],
                         span: Span {
                          start: Position {
                           line: 761,
                           column: 46,
                          },
                          end: Position {
                           line: 761,
                           column: 51,
                          },
                         },
                        },
                       ),
                       String(
                        String_ {
                         parts: [
                          Raw(
                           PartRaw {
                            content: "float",
                            span: Span {
                             start: Position {
                              line: 761,
                              column: 53,
                             },
                             end: Position {
                              line: 761,
                              column: 58,
                             },
                            },
                           },
                          ),
                         ],
                         span: Span {
                          start: Position {
                           line: 761,
                           column: 52,
                          },
                          end: Position {
                           line: 761,
                           column: 59,
                          },
                         },
                        },
                       ),
                       String(
                        String_ {
                         parts: [
                          Raw(
                           PartRaw {
                            content: "bool",
                            span: Span {
                             start: Position {
                              line: 761,
                              column: 61,
                             },
                             end: Position {
                              line: 761,
                              column: 65,
                             },
                            },
                           },
                          ),
                         ],
                         span: Span {
                          start: Position {
                           line: 761,
                           column: 60,
                          },
                          end: Position {
                           line: 761,
                           column: 66,
                          },
                         },
                        },
                       ),
                      ],
                      span: Span {
                       start: Position {
                        line: 761,
                        column: 21,
                       },
                       end: Position {
                        line: 761,
                        column: 68,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                 operator: LogicalOr,
                 right: BinaryOperation(
                  BinaryOperation {
                   left: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "isList",
                       span: Span {
                        start: Position {
                         line: 762,
                         column: 6,
                        },
                        end: Position {
                         line: 762,
                         column: 12,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "x",
                        span: Span {
                         start: Position {
                          line: 762,
                          column: 13,
                         },
                         end: Position {
                          line: 762,
                          column: 14,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   operator: LogicalAnd,
                   right: FunctionApplication(
                    FunctionApplication {
                     function: PropertyAccess(
                      PropertyAccess {
                       expression: Identifier(
                        Identifier {
                         id: "lib",
                         span: Span {
                          start: Position {
                           line: 762,
                           column: 18,
                          },
                          end: Position {
                           line: 762,
                           column: 21,
                          },
                         },
                        },
                       ),
                       attribute_path: [
                        Raw(
                         PartRaw {
                          content: "all",
                          span: Span {
                           start: Position {
                            line: 762,
                            column: 22,
                           },
                           end: Position {
                            line: 762,
                            column: 25,
                           },
                          },
                         },
                        ),
                       ],
                       default: None,
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "isCoercibleToString",
                        span: Span {
                         start: Position {
                          line: 762,
                          column: 26,
                         },
                         end: Position {
                          line: 762,
                          column: 45,
                         },
                        },
                       },
                      ),
                      Identifier(
                       Identifier {
                        id: "x",
                        span: Span {
                         start: Position {
                          line: 762,
                          column: 46,
                         },
                         end: Position {
                          line: 762,
                          column: 47,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  },
                 ),
                },
               ),
               operator: LogicalOr,
               right: HasAttribute(
                HasAttribute {
                 expression: Identifier(
                  Identifier {
                   id: "x",
                   span: Span {
                    start: Position {
                     line: 763,
                     column: 5,
                    },
                    end: Position {
                     line: 763,
                     column: 6,
                    },
                   },
                  },
                 ),
                 attribute_path: [
                  Raw(
                   PartRaw {
                    content: "outPath",
                    span: Span {
                     start: Position {
                      line: 763,
                      column: 9,
                     },
                     end: Position {
                      line: 763,
                      column: 16,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
              },
             ),
             operator: LogicalOr,
             right: HasAttribute(
              HasAttribute {
               expression: Identifier(
                Identifier {
                 id: "x",
                 span: Span {
                  start: Position {
                   line: 764,
                   column: 5,
                  },
                  end: Position {
                   line: 764,
                   column: 6,
                  },
                 },
                },
               ),
               attribute_path: [
                Raw(
                 PartRaw {
                  content: "__toString",
                  span: Span {
                   start: Position {
                    line: 764,
                    column: 9,
                   },
                   end: Position {
                    line: 764,
                    column: 19,
                   },
                  },
                 },
                ),
               ],
              },
             ),
            },
           ),
           span: Span {
            start: Position {
             line: 760,
             column: 25,
            },
            end: Position {
             line: 764,
             column: 19,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "isStorePath",
            span: Span {
             start: Position {
              line: 778,
              column: 3,
             },
             end: Position {
              line: 778,
              column: 14,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "x",
            },
           ),
           body: IfThenElse(
            IfThenElse {
             predicate: BinaryOperation(
              BinaryOperation {
               left: UnaryOperation(
                UnaryOperation {
                 operator: Not,
                 operand: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "isList",
                     span: Span {
                      start: Position {
                       line: 779,
                       column: 10,
                      },
                      end: Position {
                       line: 779,
                       column: 16,
                      },
                     },
                    },
                   ),
                   arguments: [
                    Identifier(
                     Identifier {
                      id: "x",
                      span: Span {
                       start: Position {
                        line: 779,
                        column: 17,
                       },
                       end: Position {
                        line: 779,
                        column: 18,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 779,
                   column: 8,
                  },
                  end: Position {
                   line: 779,
                   column: 19,
                  },
                 },
                },
               ),
               operator: LogicalAnd,
               right: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "isCoercibleToString",
                   span: Span {
                    start: Position {
                     line: 779,
                     column: 23,
                    },
                    end: Position {
                     line: 779,
                     column: 42,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "x",
                    span: Span {
                     start: Position {
                      line: 779,
                      column: 43,
                     },
                     end: Position {
                      line: 779,
                      column: 44,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
              },
             ),
             then: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "str",
                     span: Span {
                      start: Position {
                       line: 780,
                       column: 11,
                      },
                      end: Position {
                       line: 780,
                       column: 14,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "toString",
                      span: Span {
                       start: Position {
                        line: 780,
                        column: 17,
                       },
                       end: Position {
                        line: 780,
                        column: 25,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "x",
                       span: Span {
                        start: Position {
                         line: 780,
                         column: 26,
                        },
                        end: Position {
                         line: 780,
                         column: 27,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
               ],
               target: BinaryOperation(
                BinaryOperation {
                 left: BinaryOperation(
                  BinaryOperation {
                   left: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "substring",
                       span: Span {
                        start: Position {
                         line: 781,
                         column: 7,
                        },
                        end: Position {
                         line: 781,
                         column: 16,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Integer(
                       Integer {
                        value: "0",
                        span: Span {
                         start: Position {
                          line: 781,
                          column: 17,
                         },
                         end: Position {
                          line: 781,
                          column: 18,
                         },
                        },
                       },
                      ),
                      Integer(
                       Integer {
                        value: "1",
                        span: Span {
                         start: Position {
                          line: 781,
                          column: 19,
                         },
                         end: Position {
                          line: 781,
                          column: 20,
                         },
                        },
                       },
                      ),
                      Identifier(
                       Identifier {
                        id: "str",
                        span: Span {
                         start: Position {
                          line: 781,
                          column: 21,
                         },
                         end: Position {
                          line: 781,
                          column: 24,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   operator: EqualTo,
                   right: String(
                    String_ {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "/",
                        span: Span {
                         start: Position {
                          line: 781,
                          column: 29,
                         },
                         end: Position {
                          line: 781,
                          column: 30,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 781,
                       column: 28,
                      },
                      end: Position {
                       line: 781,
                       column: 31,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 operator: LogicalAnd,
                 right: BinaryOperation(
                  BinaryOperation {
                   left: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "dirOf",
                       span: Span {
                        start: Position {
                         line: 782,
                         column: 10,
                        },
                        end: Position {
                         line: 782,
                         column: 15,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "str",
                        span: Span {
                         start: Position {
                          line: 782,
                          column: 16,
                         },
                         end: Position {
                          line: 782,
                          column: 19,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   operator: EqualTo,
                   right: Identifier(
                    Identifier {
                     id: "storeDir",
                     span: Span {
                      start: Position {
                       line: 782,
                       column: 23,
                      },
                      end: Position {
                       line: 782,
                       column: 31,
                      },
                     },
                    },
                   ),
                  },
                 ),
                },
               ),
               span: Span {
                start: Position {
                 line: 780,
                 column: 7,
                },
                end: Position {
                 line: 782,
                 column: 31,
                },
               },
              },
             ),
             else_: Identifier(
              Identifier {
               id: "false",
               span: Span {
                start: Position {
                 line: 784,
                 column: 7,
                },
                end: Position {
                 line: 784,
                 column: 12,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 779,
               column: 5,
              },
              end: Position {
               line: 784,
               column: 12,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 778,
             column: 17,
            },
            end: Position {
             line: 784,
             column: 12,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "toInt",
            span: Span {
             start: Position {
              line: 808,
              column: 3,
             },
             end: Position {
              line: 808,
              column: 8,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "str",
            },
           ),
           body: LetIn(
            LetIn {
             bindings: [
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "strippedInput",
                   span: Span {
                    start: Position {
                     line: 812,
                     column: 7,
                    },
                    end: Position {
                     line: 812,
                     column: 20,
                    },
                   },
                  },
                 ),
                ],
                to: FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "match",
                    span: Span {
                     start: Position {
                      line: 812,
                      column: 23,
                     },
                     end: Position {
                      line: 812,
                      column: 28,
                     },
                    },
                   },
                  ),
                  arguments: [
                   String(
                    String_ {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "[[:space:]]*([[:digit:]]+)[[:space:]]*",
                        span: Span {
                         start: Position {
                          line: 812,
                          column: 30,
                         },
                         end: Position {
                          line: 812,
                          column: 68,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 812,
                       column: 29,
                      },
                      end: Position {
                       line: 812,
                       column: 69,
                      },
                     },
                    },
                   ),
                   Identifier(
                    Identifier {
                     id: "str",
                     span: Span {
                      start: Position {
                       line: 812,
                       column: 70,
                      },
                      end: Position {
                       line: 812,
                       column: 73,
                      },
                     },
                    },
                   ),
                  ],
                 },
                ),
               },
              ),
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "isLeadingZero",
                   span: Span {
                    start: Position {
                     line: 815,
                     column: 7,
                    },
                    end: Position {
                     line: 815,
                     column: 20,
                    },
                   },
                  },
                 ),
                ],
                to: BinaryOperation(
                 BinaryOperation {
                  left: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "match",
                      span: Span {
                       start: Position {
                        line: 815,
                        column: 23,
                       },
                       end: Position {
                        line: 815,
                        column: 28,
                       },
                      },
                     },
                    ),
                    arguments: [
                     String(
                      String_ {
                       parts: [
                        Raw(
                         PartRaw {
                          content: "0[[:digit:]]+",
                          span: Span {
                           start: Position {
                            line: 815,
                            column: 30,
                           },
                           end: Position {
                            line: 815,
                            column: 43,
                           },
                          },
                         },
                        ),
                       ],
                       span: Span {
                        start: Position {
                         line: 815,
                         column: 29,
                        },
                        end: Position {
                         line: 815,
                         column: 44,
                        },
                       },
                      },
                     ),
                     FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "head",
                         span: Span {
                          start: Position {
                           line: 815,
                           column: 46,
                          },
                          end: Position {
                           line: 815,
                           column: 50,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "strippedInput",
                          span: Span {
                           start: Position {
                            line: 815,
                            column: 51,
                           },
                           end: Position {
                            line: 815,
                            column: 64,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    ],
                   },
                  ),
                  operator: EqualTo,
                  right: List(
                   List {
                    elements: [],
                    span: Span {
                     start: Position {
                      line: 815,
                      column: 69,
                     },
                     end: Position {
                      line: 815,
                      column: 71,
                     },
                    },
                   },
                  ),
                 },
                ),
               },
              ),
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "parsedInput",
                   span: Span {
                    start: Position {
                     line: 818,
                     column: 7,
                    },
                    end: Position {
                     line: 818,
                     column: 18,
                    },
                   },
                  },
                 ),
                ],
                to: FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "fromJSON",
                    span: Span {
                     start: Position {
                      line: 818,
                      column: 21,
                     },
                     end: Position {
                      line: 818,
                      column: 29,
                     },
                    },
                   },
                  ),
                  arguments: [
                   FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "head",
                       span: Span {
                        start: Position {
                         line: 818,
                         column: 31,
                        },
                        end: Position {
                         line: 818,
                         column: 35,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "strippedInput",
                        span: Span {
                         start: Position {
                          line: 818,
                          column: 36,
                         },
                         end: Position {
                          line: 818,
                          column: 49,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  ],
                 },
                ),
               },
              ),
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "generalError",
                   span: Span {
                    start: Position {
                     line: 820,
                     column: 7,
                    },
                    end: Position {
                     line: 820,
                     column: 19,
                    },
                   },
                  },
                 ),
                ],
                to: String(
                 String_ {
                  parts: [
                   Raw(
                    PartRaw {
                     content: "toInt: Could not convert ",
                     span: Span {
                      start: Position {
                       line: 820,
                       column: 23,
                      },
                      end: Position {
                       line: 820,
                       column: 70,
                      },
                     },
                    },
                   ),
                   Interpolation(
                    PartInterpolation {
                     expression: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "escapeNixString",
                         span: Span {
                          start: Position {
                           line: 820,
                           column: 50,
                          },
                          end: Position {
                           line: 820,
                           column: 65,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "str",
                          span: Span {
                           start: Position {
                            line: 820,
                            column: 66,
                           },
                           end: Position {
                            line: 820,
                            column: 69,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    },
                   ),
                   Raw(
                    PartRaw {
                     content: " to int.",
                     span: Span {
                      start: Position {
                       line: 820,
                       column: 23,
                      },
                      end: Position {
                       line: 820,
                       column: 78,
                      },
                     },
                    },
                   ),
                  ],
                  span: Span {
                   start: Position {
                    line: 820,
                    column: 22,
                   },
                   end: Position {
                    line: 820,
                    column: 79,
                   },
                  },
                 },
                ),
               },
              ),
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "octalAmbigError",
                   span: Span {
                    start: Position {
                     line: 822,
                     column: 7,
                    },
                    end: Position {
                     line: 822,
                     column: 22,
                    },
                   },
                  },
                 ),
                ],
                to: BinaryOperation(
                 BinaryOperation {
                  left: String(
                   String_ {
                    parts: [
                     Raw(
                      PartRaw {
                       content: "toInt: Ambiguity in interpretation of ",
                       span: Span {
                        start: Position {
                         line: 822,
                         column: 26,
                        },
                        end: Position {
                         line: 822,
                         column: 86,
                        },
                       },
                      },
                     ),
                     Interpolation(
                      PartInterpolation {
                       expression: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "escapeNixString",
                           span: Span {
                            start: Position {
                             line: 822,
                             column: 66,
                            },
                            end: Position {
                             line: 822,
                             column: 81,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Identifier(
                           Identifier {
                            id: "str",
                            span: Span {
                             start: Position {
                              line: 822,
                              column: 82,
                             },
                             end: Position {
                              line: 822,
                              column: 85,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                    ],
                    span: Span {
                     start: Position {
                      line: 822,
                      column: 25,
                     },
                     end: Position {
                      line: 822,
                      column: 87,
                     },
                    },
                   },
                  ),
                  operator: Addition,
                  right: String(
                   String_ {
                    parts: [
                     Raw(
                      PartRaw {
                       content: " between octal and zero padded integer.",
                       span: Span {
                        start: Position {
                         line: 823,
                         column: 10,
                        },
                        end: Position {
                         line: 823,
                         column: 49,
                        },
                       },
                      },
                     ),
                    ],
                    span: Span {
                     start: Position {
                      line: 823,
                      column: 9,
                     },
                     end: Position {
                      line: 823,
                      column: 50,
                     },
                    },
                   },
                  ),
                 },
                ),
               },
              ),
             ],
             target: IfThenElse(
              IfThenElse {
               predicate: BinaryOperation(
                BinaryOperation {
                 left: Identifier(
                  Identifier {
                   id: "strippedInput",
                   span: Span {
                    start: Position {
                     line: 827,
                     column: 10,
                    },
                    end: Position {
                     line: 827,
                     column: 23,
                    },
                   },
                  },
                 ),
                 operator: EqualTo,
                 right: Identifier(
                  Identifier {
                   id: "null",
                   span: Span {
                    start: Position {
                     line: 827,
                     column: 27,
                    },
                    end: Position {
                     line: 827,
                     column: 31,
                    },
                   },
                  },
                 ),
                },
               ),
               then: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "throw",
                   span: Span {
                    start: Position {
                     line: 828,
                     column: 12,
                    },
                    end: Position {
                     line: 828,
                     column: 17,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "generalError",
                    span: Span {
                     start: Position {
                      line: 828,
                      column: 18,
                     },
                     end: Position {
                      line: 828,
                      column: 30,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               else_: IfThenElse(
                IfThenElse {
                 predicate: Identifier(
                  Identifier {
                   id: "isLeadingZero",
                   span: Span {
                    start: Position {
                     line: 830,
                     column: 15,
                    },
                    end: Position {
                     line: 830,
                     column: 28,
                    },
                   },
                  },
                 ),
                 then: FunctionApplication(
                  FunctionApplication {
                   function: Identifier(
                    Identifier {
                     id: "throw",
                     span: Span {
                      start: Position {
                       line: 831,
                       column: 12,
                      },
                      end: Position {
                       line: 831,
                       column: 17,
                      },
                     },
                    },
                   ),
                   arguments: [
                    Identifier(
                     Identifier {
                      id: "octalAmbigError",
                      span: Span {
                       start: Position {
                        line: 831,
                        column: 18,
                       },
                       end: Position {
                        line: 831,
                        column: 33,
                       },
                      },
                     },
                    ),
                   ],
                  },
                 ),
                 else_: IfThenElse(
                  IfThenElse {
                   predicate: UnaryOperation(
                    UnaryOperation {
                     operator: Not,
                     operand: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "isInt",
                         span: Span {
                          start: Position {
                           line: 833,
                           column: 16,
                          },
                          end: Position {
                           line: 833,
                           column: 21,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "parsedInput",
                          span: Span {
                           start: Position {
                            line: 833,
                            column: 22,
                           },
                           end: Position {
                            line: 833,
                            column: 33,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     span: Span {
                      start: Position {
                       line: 833,
                       column: 15,
                      },
                      end: Position {
                       line: 833,
                       column: 33,
                      },
                     },
                    },
                   ),
                   then: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "throw",
                       span: Span {
                        start: Position {
                         line: 834,
                         column: 12,
                        },
                        end: Position {
                         line: 834,
                         column: 17,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "generalError",
                        span: Span {
                         start: Position {
                          line: 834,
                          column: 18,
                         },
                         end: Position {
                          line: 834,
                          column: 30,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   else_: Identifier(
                    Identifier {
                     id: "parsedInput",
                     span: Span {
                      start: Position {
                       line: 836,
                       column: 12,
                      },
                      end: Position {
                       line: 836,
                       column: 23,
                      },
                     },
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 833,
                     column: 12,
                    },
                    end: Position {
                     line: 836,
                     column: 23,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 830,
                   column: 12,
                  },
                  end: Position {
                   line: 836,
                   column: 23,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 827,
                 column: 7,
                },
                end: Position {
                 line: 836,
                 column: 23,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 809,
               column: 5,
              },
              end: Position {
               line: 836,
               column: 23,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 808,
             column: 11,
            },
            end: Position {
             line: 836,
             column: 23,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "toIntBase10",
            span: Span {
             start: Position {
              line: 859,
              column: 3,
             },
             end: Position {
              line: 859,
              column: 14,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "str",
            },
           ),
           body: LetIn(
            LetIn {
             bindings: [
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "strippedInput",
                   span: Span {
                    start: Position {
                     line: 863,
                     column: 7,
                    },
                    end: Position {
                     line: 863,
                     column: 20,
                    },
                   },
                  },
                 ),
                ],
                to: FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "match",
                    span: Span {
                     start: Position {
                      line: 863,
                      column: 23,
                     },
                     end: Position {
                      line: 863,
                      column: 28,
                     },
                    },
                   },
                  ),
                  arguments: [
                   String(
                    String_ {
                     parts: [
                      Raw(
                       PartRaw {
                        content: "[[:space:]]*0*([[:digit:]]+)[[:space:]]*",
                        span: Span {
                         start: Position {
                          line: 863,
                          column: 30,
                         },
                         end: Position {
                          line: 863,
                          column: 70,
                         },
                        },
                       },
                      ),
                     ],
                     span: Span {
                      start: Position {
                       line: 863,
                       column: 29,
                      },
                      end: Position {
                       line: 863,
                       column: 71,
                      },
                     },
                    },
                   ),
                   Identifier(
                    Identifier {
                     id: "str",
                     span: Span {
                      start: Position {
                       line: 863,
                       column: 72,
                      },
                      end: Position {
                       line: 863,
                       column: 75,
                      },
                     },
                    },
                   ),
                  ],
                 },
                ),
               },
              ),
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "isZero",
                   span: Span {
                    start: Position {
                     line: 866,
                     column: 7,
                    },
                    end: Position {
                     line: 866,
                     column: 13,
                    },
                   },
                  },
                 ),
                ],
                to: BinaryOperation(
                 BinaryOperation {
                  left: FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "match",
                      span: Span {
                       start: Position {
                        line: 866,
                        column: 16,
                       },
                       end: Position {
                        line: 866,
                        column: 21,
                       },
                      },
                     },
                    ),
                    arguments: [
                     String(
                      String_ {
                       parts: [
                        Raw(
                         PartRaw {
                          content: "0+",
                          span: Span {
                           start: Position {
                            line: 866,
                            column: 23,
                           },
                           end: Position {
                            line: 866,
                            column: 25,
                           },
                          },
                         },
                        ),
                       ],
                       span: Span {
                        start: Position {
                         line: 866,
                         column: 22,
                        },
                        end: Position {
                         line: 866,
                         column: 26,
                        },
                       },
                      },
                     ),
                     FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "head",
                         span: Span {
                          start: Position {
                           line: 866,
                           column: 28,
                          },
                          end: Position {
                           line: 866,
                           column: 32,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "strippedInput",
                          span: Span {
                           start: Position {
                            line: 866,
                            column: 33,
                           },
                           end: Position {
                            line: 866,
                            column: 46,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    ],
                   },
                  ),
                  operator: EqualTo,
                  right: List(
                   List {
                    elements: [],
                    span: Span {
                     start: Position {
                      line: 866,
                      column: 51,
                     },
                     end: Position {
                      line: 866,
                      column: 53,
                     },
                    },
                   },
                  ),
                 },
                ),
               },
              ),
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "parsedInput",
                   span: Span {
                    start: Position {
                     line: 869,
                     column: 7,
                    },
                    end: Position {
                     line: 869,
                     column: 18,
                    },
                   },
                  },
                 ),
                ],
                to: FunctionApplication(
                 FunctionApplication {
                  function: Identifier(
                   Identifier {
                    id: "fromJSON",
                    span: Span {
                     start: Position {
                      line: 869,
                      column: 21,
                     },
                     end: Position {
                      line: 869,
                      column: 29,
                     },
                    },
                   },
                  ),
                  arguments: [
                   FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "head",
                       span: Span {
                        start: Position {
                         line: 869,
                         column: 31,
                        },
                        end: Position {
                         line: 869,
                         column: 35,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "strippedInput",
                        span: Span {
                         start: Position {
                          line: 869,
                          column: 36,
                         },
                         end: Position {
                          line: 869,
                          column: 49,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                  ],
                 },
                ),
               },
              ),
              KeyValue(
               BindingKeyValue {
                from: [
                 Raw(
                  PartRaw {
                   content: "generalError",
                   span: Span {
                    start: Position {
                     line: 871,
                     column: 7,
                    },
                    end: Position {
                     line: 871,
                     column: 19,
                    },
                   },
                  },
                 ),
                ],
                to: String(
                 String_ {
                  parts: [
                   Raw(
                    PartRaw {
                     content: "toIntBase10: Could not convert ",
                     span: Span {
                      start: Position {
                       line: 871,
                       column: 23,
                      },
                      end: Position {
                       line: 871,
                       column: 76,
                      },
                     },
                    },
                   ),
                   Interpolation(
                    PartInterpolation {
                     expression: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "escapeNixString",
                         span: Span {
                          start: Position {
                           line: 871,
                           column: 56,
                          },
                          end: Position {
                           line: 871,
                           column: 71,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "str",
                          span: Span {
                           start: Position {
                            line: 871,
                            column: 72,
                           },
                           end: Position {
                            line: 871,
                            column: 75,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    },
                   ),
                   Raw(
                    PartRaw {
                     content: " to int.",
                     span: Span {
                      start: Position {
                       line: 871,
                       column: 23,
                      },
                      end: Position {
                       line: 871,
                       column: 84,
                      },
                     },
                    },
                   ),
                  ],
                  span: Span {
                   start: Position {
                    line: 871,
                    column: 22,
                   },
                   end: Position {
                    line: 871,
                    column: 85,
                   },
                  },
                 },
                ),
               },
              ),
             ],
             target: IfThenElse(
              IfThenElse {
               predicate: BinaryOperation(
                BinaryOperation {
                 left: Identifier(
                  Identifier {
                   id: "strippedInput",
                   span: Span {
                    start: Position {
                     line: 875,
                     column: 10,
                    },
                    end: Position {
                     line: 875,
                     column: 23,
                    },
                   },
                  },
                 ),
                 operator: EqualTo,
                 right: Identifier(
                  Identifier {
                   id: "null",
                   span: Span {
                    start: Position {
                     line: 875,
                     column: 27,
                    },
                    end: Position {
                     line: 875,
                     column: 31,
                    },
                   },
                  },
                 ),
                },
               ),
               then: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "throw",
                   span: Span {
                    start: Position {
                     line: 876,
                     column: 12,
                    },
                    end: Position {
                     line: 876,
                     column: 17,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "generalError",
                    span: Span {
                     start: Position {
                      line: 876,
                      column: 18,
                     },
                     end: Position {
                      line: 876,
                      column: 30,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               else_: IfThenElse(
                IfThenElse {
                 predicate: Identifier(
                  Identifier {
                   id: "isZero",
                   span: Span {
                    start: Position {
                     line: 878,
                     column: 15,
                    },
                    end: Position {
                     line: 878,
                     column: 21,
                    },
                   },
                  },
                 ),
                 then: Integer(
                  Integer {
                   value: "0",
                   span: Span {
                    start: Position {
                     line: 879,
                     column: 12,
                    },
                    end: Position {
                     line: 879,
                     column: 13,
                    },
                   },
                  },
                 ),
                 else_: IfThenElse(
                  IfThenElse {
                   predicate: UnaryOperation(
                    UnaryOperation {
                     operator: Not,
                     operand: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "isInt",
                         span: Span {
                          start: Position {
                           line: 881,
                           column: 16,
                          },
                          end: Position {
                           line: 881,
                           column: 21,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "parsedInput",
                          span: Span {
                           start: Position {
                            line: 881,
                            column: 22,
                           },
                           end: Position {
                            line: 881,
                            column: 33,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     span: Span {
                      start: Position {
                       line: 881,
                       column: 15,
                      },
                      end: Position {
                       line: 881,
                       column: 33,
                      },
                     },
                    },
                   ),
                   then: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "throw",
                       span: Span {
                        start: Position {
                         line: 882,
                         column: 12,
                        },
                        end: Position {
                         line: 882,
                         column: 17,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "generalError",
                        span: Span {
                         start: Position {
                          line: 882,
                          column: 18,
                         },
                         end: Position {
                          line: 882,
                          column: 30,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   else_: Identifier(
                    Identifier {
                     id: "parsedInput",
                     span: Span {
                      start: Position {
                       line: 884,
                       column: 12,
                      },
                      end: Position {
                       line: 884,
                       column: 23,
                      },
                     },
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 881,
                     column: 12,
                    },
                    end: Position {
                     line: 884,
                     column: 23,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 878,
                   column: 12,
                  },
                  end: Position {
                   line: 884,
                   column: 23,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 875,
                 column: 7,
                },
                end: Position {
                 line: 884,
                 column: 23,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 860,
               column: 5,
              },
              end: Position {
               line: 884,
               column: 23,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 859,
             column: 17,
            },
            end: Position {
             line: 884,
             column: 23,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "readPathsFromFile",
            span: Span {
             start: Position {
              line: 901,
              column: 3,
             },
             end: Position {
              line: 901,
              column: 20,
             },
            },
           },
          ),
         ],
         to: FunctionApplication(
          FunctionApplication {
           function: PropertyAccess(
            PropertyAccess {
             expression: Identifier(
              Identifier {
               id: "lib",
               span: Span {
                start: Position {
                 line: 901,
                 column: 23,
                },
                end: Position {
                 line: 901,
                 column: 26,
                },
               },
              },
             ),
             attribute_path: [
              Raw(
               PartRaw {
                content: "warn",
                span: Span {
                 start: Position {
                  line: 901,
                  column: 27,
                 },
                 end: Position {
                  line: 901,
                  column: 31,
                 },
                },
               },
              ),
             ],
             default: None,
            },
           ),
           arguments: [
            String(
             String_ {
              parts: [
               Raw(
                PartRaw {
                 content: "lib.readPathsFromFile is deprecated, use a list instead",
                 span: Span {
                  start: Position {
                   line: 901,
                   column: 33,
                  },
                  end: Position {
                   line: 901,
                   column: 88,
                  },
                 },
                },
               ),
              ],
              span: Span {
               start: Position {
                line: 901,
                column: 32,
               },
               end: Position {
                line: 901,
                column: 89,
               },
              },
             },
            ),
            Function(
             Function {
              head: Simple(
               FunctionHeadSimple {
                identifier: "rootPath",
               },
              ),
              body: Function(
               Function {
                head: Simple(
                 FunctionHeadSimple {
                  identifier: "file",
                 },
                ),
                body: LetIn(
                 LetIn {
                  bindings: [
                   KeyValue(
                    BindingKeyValue {
                     from: [
                      Raw(
                       PartRaw {
                        content: "lines",
                        span: Span {
                         start: Position {
                          line: 904,
                          column: 9,
                         },
                         end: Position {
                          line: 904,
                          column: 14,
                         },
                        },
                       },
                      ),
                     ],
                     to: FunctionApplication(
                      FunctionApplication {
                       function: PropertyAccess(
                        PropertyAccess {
                         expression: Identifier(
                          Identifier {
                           id: "lib",
                           span: Span {
                            start: Position {
                             line: 904,
                             column: 17,
                            },
                            end: Position {
                             line: 904,
                             column: 20,
                            },
                           },
                          },
                         ),
                         attribute_path: [
                          Raw(
                           PartRaw {
                            content: "splitString",
                            span: Span {
                             start: Position {
                              line: 904,
                              column: 21,
                             },
                             end: Position {
                              line: 904,
                              column: 32,
                             },
                            },
                           },
                          ),
                         ],
                         default: None,
                        },
                       ),
                       arguments: [
                        String(
                         String_ {
                          parts: [
                           Raw(
                            PartRaw {
                             content: "\n",
                             span: Span {
                              start: Position {
                               line: 904,
                               column: 34,
                              },
                              end: Position {
                               line: 904,
                               column: 36,
                              },
                             },
                            },
                           ),
                          ],
                          span: Span {
                           start: Position {
                            line: 904,
                            column: 33,
                           },
                           end: Position {
                            line: 904,
                            column: 37,
                           },
                          },
                         },
                        ),
                        FunctionApplication(
                         FunctionApplication {
                          function: Identifier(
                           Identifier {
                            id: "readFile",
                            span: Span {
                             start: Position {
                              line: 904,
                              column: 39,
                             },
                             end: Position {
                              line: 904,
                              column: 47,
                             },
                            },
                           },
                          ),
                          arguments: [
                           Identifier(
                            Identifier {
                             id: "file",
                             span: Span {
                              start: Position {
                               line: 904,
                               column: 48,
                              },
                              end: Position {
                               line: 904,
                               column: 52,
                              },
                             },
                            },
                           ),
                          ],
                         },
                        ),
                       ],
                      },
                     ),
                    },
                   ),
                   KeyValue(
                    BindingKeyValue {
                     from: [
                      Raw(
                       PartRaw {
                        content: "removeComments",
                        span: Span {
                         start: Position {
                          line: 905,
                          column: 9,
                         },
                         end: Position {
                          line: 905,
                          column: 23,
                         },
                        },
                       },
                      ),
                     ],
                     to: FunctionApplication(
                      FunctionApplication {
                       function: PropertyAccess(
                        PropertyAccess {
                         expression: Identifier(
                          Identifier {
                           id: "lib",
                           span: Span {
                            start: Position {
                             line: 905,
                             column: 26,
                            },
                            end: Position {
                             line: 905,
                             column: 29,
                            },
                           },
                          },
                         ),
                         attribute_path: [
                          Raw(
                           PartRaw {
                            content: "filter",
                            span: Span {
                             start: Position {
                              line: 905,
                              column: 30,
                             },
                             end: Position {
                              line: 905,
                              column: 36,
                             },
                            },
                           },
                          ),
                         ],
                         default: None,
                        },
                       ),
                       arguments: [
                        Function(
                         Function {
                          head: Simple(
                           FunctionHeadSimple {
                            identifier: "line",
                           },
                          ),
                          body: BinaryOperation(
                           BinaryOperation {
                            left: BinaryOperation(
                             BinaryOperation {
                              left: Identifier(
                               Identifier {
                                id: "line",
                                span: Span {
                                 start: Position {
                                  line: 905,
                                  column: 44,
                                 },
                                 end: Position {
                                  line: 905,
                                  column: 48,
                                 },
                                },
                               },
                              ),
                              operator: NotEqualTo,
                              right: String(
                               String_ {
                                parts: [],
                                span: Span {
                                 start: Position {
                                  line: 905,
                                  column: 52,
                                 },
                                 end: Position {
                                  line: 905,
                                  column: 54,
                                 },
                                },
                               },
                              ),
                             },
                            ),
                            operator: LogicalAnd,
                            right: UnaryOperation(
                             UnaryOperation {
                              operator: Not,
                              operand: FunctionApplication(
                               FunctionApplication {
                                function: PropertyAccess(
                                 PropertyAccess {
                                  expression: Identifier(
                                   Identifier {
                                    id: "lib",
                                    span: Span {
                                     start: Position {
                                      line: 905,
                                      column: 60,
                                     },
                                     end: Position {
                                      line: 905,
                                      column: 63,
                                     },
                                    },
                                   },
                                  ),
                                  attribute_path: [
                                   Raw(
                                    PartRaw {
                                     content: "hasPrefix",
                                     span: Span {
                                      start: Position {
                                       line: 905,
                                       column: 64,
                                      },
                                      end: Position {
                                       line: 905,
                                       column: 73,
                                      },
                                     },
                                    },
                                   ),
                                  ],
                                  default: None,
                                 },
                                ),
                                arguments: [
                                 String(
                                  String_ {
                                   parts: [
                                    Raw(
                                     PartRaw {
                                      content: "#",
                                      span: Span {
                                       start: Position {
                                        line: 905,
                                        column: 75,
                                       },
                                       end: Position {
                                        line: 905,
                                        column: 76,
                                       },
                                      },
                                     },
                                    ),
                                   ],
                                   span: Span {
                                    start: Position {
                                     line: 905,
                                     column: 74,
                                    },
                                    end: Position {
                                     line: 905,
                                     column: 77,
                                    },
                                   },
                                  },
                                 ),
                                 Identifier(
                                  Identifier {
                                   id: "line",
                                   span: Span {
                                    start: Position {
                                     line: 905,
                                     column: 78,
                                    },
                                    end: Position {
                                     line: 905,
                                     column: 82,
                                    },
                                   },
                                  },
                                 ),
                                ],
                               },
                              ),
                              span: Span {
                               start: Position {
                                line: 905,
                                column: 58,
                               },
                               end: Position {
                                line: 905,
                                column: 83,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          span: Span {
                           start: Position {
                            line: 905,
                            column: 38,
                           },
                           end: Position {
                            line: 905,
                            column: 83,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    },
                   ),
                   KeyValue(
                    BindingKeyValue {
                     from: [
                      Raw(
                       PartRaw {
                        content: "relativePaths",
                        span: Span {
                         start: Position {
                          line: 906,
                          column: 9,
                         },
                         end: Position {
                          line: 906,
                          column: 22,
                         },
                        },
                       },
                      ),
                     ],
                     to: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "removeComments",
                         span: Span {
                          start: Position {
                           line: 906,
                           column: 25,
                          },
                          end: Position {
                           line: 906,
                           column: 39,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "lines",
                          span: Span {
                           start: Position {
                            line: 906,
                            column: 40,
                           },
                           end: Position {
                            line: 906,
                            column: 45,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    },
                   ),
                   KeyValue(
                    BindingKeyValue {
                     from: [
                      Raw(
                       PartRaw {
                        content: "absolutePaths",
                        span: Span {
                         start: Position {
                          line: 907,
                          column: 9,
                         },
                         end: Position {
                          line: 907,
                          column: 22,
                         },
                        },
                       },
                      ),
                     ],
                     to: FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "map",
                         span: Span {
                          start: Position {
                           line: 907,
                           column: 25,
                          },
                          end: Position {
                           line: 907,
                           column: 28,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Function(
                         Function {
                          head: Simple(
                           FunctionHeadSimple {
                            identifier: "path",
                           },
                          ),
                          body: BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "rootPath",
                              span: Span {
                               start: Position {
                                line: 907,
                                column: 36,
                               },
                               end: Position {
                                line: 907,
                                column: 44,
                               },
                              },
                             },
                            ),
                            operator: Addition,
                            right: String(
                             String_ {
                              parts: [
                               Raw(
                                PartRaw {
                                 content: "/",
                                 span: Span {
                                  start: Position {
                                   line: 907,
                                   column: 48,
                                  },
                                  end: Position {
                                   line: 907,
                                   column: 56,
                                  },
                                 },
                                },
                               ),
                               Interpolation(
                                PartInterpolation {
                                 expression: Identifier(
                                  Identifier {
                                   id: "path",
                                   span: Span {
                                    start: Position {
                                     line: 907,
                                     column: 51,
                                    },
                                    end: Position {
                                     line: 907,
                                     column: 55,
                                    },
                                   },
                                  },
                                 ),
                                },
                               ),
                              ],
                              span: Span {
                               start: Position {
                                line: 907,
                                column: 47,
                               },
                               end: Position {
                                line: 907,
                                column: 57,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          span: Span {
                           start: Position {
                            line: 907,
                            column: 30,
                           },
                           end: Position {
                            line: 907,
                            column: 57,
                           },
                          },
                         },
                        ),
                        Identifier(
                         Identifier {
                          id: "relativePaths",
                          span: Span {
                           start: Position {
                            line: 907,
                            column: 59,
                           },
                           end: Position {
                            line: 907,
                            column: 72,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    },
                   ),
                  ],
                  target: Identifier(
                   Identifier {
                    id: "absolutePaths",
                    span: Span {
                     start: Position {
                      line: 909,
                      column: 9,
                     },
                     end: Position {
                      line: 909,
                      column: 22,
                     },
                    },
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 903,
                    column: 7,
                   },
                   end: Position {
                    line: 909,
                    column: 22,
                   },
                  },
                 },
                ),
                span: Span {
                 start: Position {
                  line: 902,
                  column: 16,
                 },
                 end: Position {
                  line: 909,
                  column: 22,
                 },
                },
               },
              ),
              span: Span {
               start: Position {
                line: 902,
                column: 6,
               },
               end: Position {
                line: 909,
                column: 22,
               },
              },
             },
            ),
           ],
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "fileContents",
            span: Span {
             start: Position {
              line: 921,
              column: 3,
             },
             end: Position {
              line: 921,
              column: 15,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "file",
            },
           ),
           body: FunctionApplication(
            FunctionApplication {
             function: Identifier(
              Identifier {
               id: "removeSuffix",
               span: Span {
                start: Position {
                 line: 921,
                 column: 24,
                },
                end: Position {
                 line: 921,
                 column: 36,
                },
               },
              },
             ),
             arguments: [
              String(
               String_ {
                parts: [
                 Raw(
                  PartRaw {
                   content: "\n",
                   span: Span {
                    start: Position {
                     line: 921,
                     column: 38,
                    },
                    end: Position {
                     line: 921,
                     column: 40,
                    },
                   },
                  },
                 ),
                ],
                span: Span {
                 start: Position {
                  line: 921,
                  column: 37,
                 },
                 end: Position {
                  line: 921,
                  column: 41,
                 },
                },
               },
              ),
              FunctionApplication(
               FunctionApplication {
                function: Identifier(
                 Identifier {
                  id: "readFile",
                  span: Span {
                   start: Position {
                    line: 921,
                    column: 43,
                   },
                   end: Position {
                    line: 921,
                    column: 51,
                   },
                  },
                 },
                ),
                arguments: [
                 Identifier(
                  Identifier {
                   id: "file",
                   span: Span {
                    start: Position {
                     line: 921,
                     column: 52,
                    },
                    end: Position {
                     line: 921,
                     column: 56,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             ],
            },
           ),
           span: Span {
            start: Position {
             line: 921,
             column: 18,
            },
            end: Position {
             line: 921,
             column: 57,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "sanitizeDerivationName",
            span: Span {
             start: Position {
              line: 936,
              column: 3,
             },
             end: Position {
              line: 936,
              column: 25,
             },
            },
           },
          ),
         ],
         to: LetIn(
          LetIn {
           bindings: [
            KeyValue(
             BindingKeyValue {
              from: [
               Raw(
                PartRaw {
                 content: "okRegex",
                 span: Span {
                  start: Position {
                   line: 937,
                   column: 7,
                  },
                  end: Position {
                   line: 937,
                   column: 14,
                  },
                 },
                },
               ),
              ],
              to: FunctionApplication(
               FunctionApplication {
                function: Identifier(
                 Identifier {
                  id: "match",
                  span: Span {
                   start: Position {
                    line: 937,
                    column: 17,
                   },
                   end: Position {
                    line: 937,
                    column: 22,
                   },
                  },
                 },
                ),
                arguments: [
                 String(
                  String_ {
                   parts: [
                    Raw(
                     PartRaw {
                      content: "[[:alnum:]+_?=-][[:alnum:]+._?=-]*",
                      span: Span {
                       start: Position {
                        line: 937,
                        column: 24,
                       },
                       end: Position {
                        line: 937,
                        column: 58,
                       },
                      },
                     },
                    ),
                   ],
                   span: Span {
                    start: Position {
                     line: 937,
                     column: 23,
                    },
                    end: Position {
                     line: 937,
                     column: 59,
                    },
                   },
                  },
                 ),
                ],
               },
              ),
             },
            ),
           ],
           target: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "string",
              },
             ),
             body: IfThenElse(
              IfThenElse {
               predicate: BinaryOperation(
                BinaryOperation {
                 left: BinaryOperation(
                  BinaryOperation {
                   left: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "stringLength",
                       span: Span {
                        start: Position {
                         line: 941,
                         column: 6,
                        },
                        end: Position {
                         line: 941,
                         column: 18,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "string",
                        span: Span {
                         start: Position {
                          line: 941,
                          column: 19,
                         },
                         end: Position {
                          line: 941,
                          column: 25,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   operator: LessThanOrEqualTo,
                   right: Integer(
                    Integer {
                     value: "207",
                     span: Span {
                      start: Position {
                       line: 941,
                       column: 29,
                      },
                      end: Position {
                       line: 941,
                       column: 32,
                      },
                     },
                    },
                   ),
                  },
                 ),
                 operator: LogicalAnd,
                 right: BinaryOperation(
                  BinaryOperation {
                   left: FunctionApplication(
                    FunctionApplication {
                     function: Identifier(
                      Identifier {
                       id: "okRegex",
                       span: Span {
                        start: Position {
                         line: 941,
                         column: 36,
                        },
                        end: Position {
                         line: 941,
                         column: 43,
                        },
                       },
                      },
                     ),
                     arguments: [
                      Identifier(
                       Identifier {
                        id: "string",
                        span: Span {
                         start: Position {
                          line: 941,
                          column: 44,
                         },
                         end: Position {
                          line: 941,
                          column: 50,
                         },
                        },
                       },
                      ),
                     ],
                    },
                   ),
                   operator: NotEqualTo,
                   right: Identifier(
                    Identifier {
                     id: "null",
                     span: Span {
                      start: Position {
                       line: 941,
                       column: 54,
                      },
                      end: Position {
                       line: 941,
                       column: 58,
                      },
                     },
                    },
                   ),
                  },
                 ),
                },
               ),
               then: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "unsafeDiscardStringContext",
                   span: Span {
                    start: Position {
                     line: 942,
                     column: 8,
                    },
                    end: Position {
                     line: 942,
                     column: 34,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "string",
                    span: Span {
                     start: Position {
                      line: 942,
                      column: 35,
                     },
                     end: Position {
                      line: 942,
                      column: 41,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               else_: FunctionApplication(
                FunctionApplication {
                 function: PropertyAccess(
                  PropertyAccess {
                   expression: Identifier(
                    Identifier {
                     id: "lib",
                     span: Span {
                      start: Position {
                       line: 943,
                       column: 8,
                      },
                      end: Position {
                       line: 943,
                       column: 11,
                      },
                     },
                    },
                   ),
                   attribute_path: [
                    Raw(
                     PartRaw {
                      content: "pipe",
                      span: Span {
                       start: Position {
                        line: 943,
                        column: 12,
                       },
                       end: Position {
                        line: 943,
                        column: 16,
                       },
                      },
                     },
                    ),
                   ],
                   default: None,
                  },
                 ),
                 arguments: [
                  Identifier(
                   Identifier {
                    id: "string",
                    span: Span {
                     start: Position {
                      line: 943,
                      column: 17,
                     },
                     end: Position {
                      line: 943,
                      column: 23,
                     },
                    },
                   },
                  ),
                  List(
                   List {
                    elements: [
                     Identifier(
                      Identifier {
                       id: "unsafeDiscardStringContext",
                       span: Span {
                        start: Position {
                         line: 946,
                         column: 5,
                        },
                        end: Position {
                         line: 946,
                         column: 31,
                        },
                       },
                      },
                     ),
                     Function(
                      Function {
                       head: Simple(
                        FunctionHeadSimple {
                         identifier: "x",
                        },
                       ),
                       body: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "elemAt",
                           span: Span {
                            start: Position {
                             line: 948,
                             column: 9,
                            },
                            end: Position {
                             line: 948,
                             column: 15,
                            },
                           },
                          },
                         ),
                         arguments: [
                          FunctionApplication(
                           FunctionApplication {
                            function: Identifier(
                             Identifier {
                              id: "match",
                              span: Span {
                               start: Position {
                                line: 948,
                                column: 17,
                               },
                               end: Position {
                                line: 948,
                                column: 22,
                               },
                              },
                             },
                            ),
                            arguments: [
                             String(
                              String_ {
                               parts: [
                                Raw(
                                 PartRaw {
                                  content: "\\.*(.*)",
                                  span: Span {
                                   start: Position {
                                    line: 948,
                                    column: 24,
                                   },
                                   end: Position {
                                    line: 948,
                                    column: 32,
                                   },
                                  },
                                 },
                                ),
                               ],
                               span: Span {
                                start: Position {
                                 line: 948,
                                 column: 23,
                                },
                                end: Position {
                                 line: 948,
                                 column: 33,
                                },
                               },
                              },
                             ),
                             Identifier(
                              Identifier {
                               id: "x",
                               span: Span {
                                start: Position {
                                 line: 948,
                                 column: 34,
                                },
                                end: Position {
                                 line: 948,
                                 column: 35,
                                },
                               },
                              },
                             ),
                            ],
                           },
                          ),
                          Integer(
                           Integer {
                            value: "0",
                            span: Span {
                             start: Position {
                              line: 948,
                              column: 37,
                             },
                             end: Position {
                              line: 948,
                              column: 38,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                       span: Span {
                        start: Position {
                         line: 948,
                         column: 6,
                        },
                        end: Position {
                         line: 948,
                         column: 38,
                        },
                       },
                      },
                     ),
                     FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "split",
                         span: Span {
                          start: Position {
                           line: 952,
                           column: 6,
                          },
                          end: Position {
                           line: 952,
                           column: 11,
                          },
                         },
                        },
                       ),
                       arguments: [
                        String(
                         String_ {
                          parts: [
                           Raw(
                            PartRaw {
                             content: "[^[:alnum:]+._?=-]+",
                             span: Span {
                              start: Position {
                               line: 952,
                               column: 13,
                              },
                              end: Position {
                               line: 952,
                               column: 32,
                              },
                             },
                            },
                           ),
                          ],
                          span: Span {
                           start: Position {
                            line: 952,
                            column: 12,
                           },
                           end: Position {
                            line: 952,
                            column: 33,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "concatMapStrings",
                         span: Span {
                          start: Position {
                           line: 954,
                           column: 6,
                          },
                          end: Position {
                           line: 954,
                           column: 22,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Function(
                         Function {
                          head: Simple(
                           FunctionHeadSimple {
                            identifier: "s",
                           },
                          ),
                          body: IfThenElse(
                           IfThenElse {
                            predicate: FunctionApplication(
                             FunctionApplication {
                              function: PropertyAccess(
                               PropertyAccess {
                                expression: Identifier(
                                 Identifier {
                                  id: "lib",
                                  span: Span {
                                   start: Position {
                                    line: 954,
                                    column: 30,
                                   },
                                   end: Position {
                                    line: 954,
                                    column: 33,
                                   },
                                  },
                                 },
                                ),
                                attribute_path: [
                                 Raw(
                                  PartRaw {
                                   content: "isList",
                                   span: Span {
                                    start: Position {
                                     line: 954,
                                     column: 34,
                                    },
                                    end: Position {
                                     line: 954,
                                     column: 40,
                                    },
                                   },
                                  },
                                 ),
                                ],
                                default: None,
                               },
                              ),
                              arguments: [
                               Identifier(
                                Identifier {
                                 id: "s",
                                 span: Span {
                                  start: Position {
                                   line: 954,
                                   column: 41,
                                  },
                                  end: Position {
                                   line: 954,
                                   column: 42,
                                  },
                                 },
                                },
                               ),
                              ],
                             },
                            ),
                            then: String(
                             String_ {
                              parts: [
                               Raw(
                                PartRaw {
                                 content: "-",
                                 span: Span {
                                  start: Position {
                                   line: 954,
                                   column: 49,
                                  },
                                  end: Position {
                                   line: 954,
                                   column: 50,
                                  },
                                 },
                                },
                               ),
                              ],
                              span: Span {
                               start: Position {
                                line: 954,
                                column: 48,
                               },
                               end: Position {
                                line: 954,
                                column: 51,
                               },
                              },
                             },
                            ),
                            else_: Identifier(
                             Identifier {
                              id: "s",
                              span: Span {
                               start: Position {
                                line: 954,
                                column: 57,
                               },
                               end: Position {
                                line: 954,
                                column: 58,
                               },
                              },
                             },
                            ),
                            span: Span {
                             start: Position {
                              line: 954,
                              column: 27,
                             },
                             end: Position {
                              line: 954,
                              column: 58,
                             },
                            },
                           },
                          ),
                          span: Span {
                           start: Position {
                            line: 954,
                            column: 24,
                           },
                           end: Position {
                            line: 954,
                            column: 58,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     Function(
                      Function {
                       head: Simple(
                        FunctionHeadSimple {
                         identifier: "x",
                        },
                       ),
                       body: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "substring",
                           span: Span {
                            start: Position {
                             line: 956,
                             column: 9,
                            },
                            end: Position {
                             line: 956,
                             column: 18,
                            },
                           },
                          },
                         ),
                         arguments: [
                          FunctionApplication(
                           FunctionApplication {
                            function: PropertyAccess(
                             PropertyAccess {
                              expression: Identifier(
                               Identifier {
                                id: "lib",
                                span: Span {
                                 start: Position {
                                  line: 956,
                                  column: 20,
                                 },
                                 end: Position {
                                  line: 956,
                                  column: 23,
                                 },
                                },
                               },
                              ),
                              attribute_path: [
                               Raw(
                                PartRaw {
                                 content: "max",
                                 span: Span {
                                  start: Position {
                                   line: 956,
                                   column: 24,
                                  },
                                  end: Position {
                                   line: 956,
                                   column: 27,
                                  },
                                 },
                                },
                               ),
                              ],
                              default: None,
                             },
                            ),
                            arguments: [
                             BinaryOperation(
                              BinaryOperation {
                               left: FunctionApplication(
                                FunctionApplication {
                                 function: Identifier(
                                  Identifier {
                                   id: "stringLength",
                                   span: Span {
                                    start: Position {
                                     line: 956,
                                     column: 29,
                                    },
                                    end: Position {
                                     line: 956,
                                     column: 41,
                                    },
                                   },
                                  },
                                 ),
                                 arguments: [
                                  Identifier(
                                   Identifier {
                                    id: "x",
                                    span: Span {
                                     start: Position {
                                      line: 956,
                                      column: 42,
                                     },
                                     end: Position {
                                      line: 956,
                                      column: 43,
                                     },
                                    },
                                   },
                                  ),
                                 ],
                                },
                               ),
                               operator: Subtraction,
                               right: Integer(
                                Integer {
                                 value: "207",
                                 span: Span {
                                  start: Position {
                                   line: 956,
                                   column: 46,
                                  },
                                  end: Position {
                                   line: 956,
                                   column: 49,
                                  },
                                 },
                                },
                               ),
                              },
                             ),
                             Integer(
                              Integer {
                               value: "0",
                               span: Span {
                                start: Position {
                                 line: 956,
                                 column: 51,
                                },
                                end: Position {
                                 line: 956,
                                 column: 52,
                                },
                               },
                              },
                             ),
                            ],
                           },
                          ),
                          UnaryOperation(
                           UnaryOperation {
                            operator: Negate,
                            operand: Integer(
                             Integer {
                              value: "1",
                              span: Span {
                               start: Position {
                                line: 956,
                                column: 56,
                               },
                               end: Position {
                                line: 956,
                                column: 57,
                               },
                              },
                             },
                            ),
                            span: Span {
                             start: Position {
                              line: 956,
                              column: 55,
                             },
                             end: Position {
                              line: 956,
                              column: 57,
                             },
                            },
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "x",
                            span: Span {
                             start: Position {
                              line: 956,
                              column: 59,
                             },
                             end: Position {
                              line: 956,
                              column: 60,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                       span: Span {
                        start: Position {
                         line: 956,
                         column: 6,
                        },
                        end: Position {
                         line: 956,
                         column: 60,
                        },
                       },
                      },
                     ),
                     Function(
                      Function {
                       head: Simple(
                        FunctionHeadSimple {
                         identifier: "x",
                        },
                       ),
                       body: IfThenElse(
                        IfThenElse {
                         predicate: BinaryOperation(
                          BinaryOperation {
                           left: FunctionApplication(
                            FunctionApplication {
                             function: Identifier(
                              Identifier {
                               id: "stringLength",
                               span: Span {
                                start: Position {
                                 line: 958,
                                 column: 12,
                                },
                                end: Position {
                                 line: 958,
                                 column: 24,
                                },
                               },
                              },
                             ),
                             arguments: [
                              Identifier(
                               Identifier {
                                id: "x",
                                span: Span {
                                 start: Position {
                                  line: 958,
                                  column: 25,
                                 },
                                 end: Position {
                                  line: 958,
                                  column: 26,
                                 },
                                },
                               },
                              ),
                             ],
                            },
                           ),
                           operator: EqualTo,
                           right: Integer(
                            Integer {
                             value: "0",
                             span: Span {
                              start: Position {
                               line: 958,
                               column: 30,
                              },
                              end: Position {
                               line: 958,
                               column: 31,
                              },
                             },
                            },
                           ),
                          },
                         ),
                         then: String(
                          String_ {
                           parts: [
                            Raw(
                             PartRaw {
                              content: "unknown",
                              span: Span {
                               start: Position {
                                line: 958,
                                column: 38,
                               },
                               end: Position {
                                line: 958,
                                column: 45,
                               },
                              },
                             },
                            ),
                           ],
                           span: Span {
                            start: Position {
                             line: 958,
                             column: 37,
                            },
                            end: Position {
                             line: 958,
                             column: 46,
                            },
                           },
                          },
                         ),
                         else_: Identifier(
                          Identifier {
                           id: "x",
                           span: Span {
                            start: Position {
                             line: 958,
                             column: 52,
                            },
                            end: Position {
                             line: 958,
                             column: 53,
                            },
                           },
                          },
                         ),
                         span: Span {
                          start: Position {
                           line: 958,
                           column: 9,
                          },
                          end: Position {
                           line: 958,
                           column: 53,
                          },
                         },
                        },
                       ),
                       span: Span {
                        start: Position {
                         line: 958,
                         column: 6,
                        },
                        end: Position {
                         line: 958,
                         column: 53,
                        },
                       },
                      },
                     ),
                    ],
                    span: Span {
                     start: Position {
                      line: 943,
                      column: 24,
                     },
                     end: Position {
                      line: 959,
                      column: 4,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 941,
                 column: 3,
                },
                end: Position {
                 line: 959,
                 column: 4,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 939,
               column: 3,
              },
              end: Position {
               line: 959,
               column: 4,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 937,
             column: 3,
            },
            end: Position {
             line: 959,
             column: 4,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "levenshtein",
            span: Span {
             start: Position {
              line: 975,
              column: 3,
             },
             end: Position {
              line: 975,
              column: 14,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "a",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "b",
              },
             ),
             body: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "arr",
                     span: Span {
                      start: Position {
                       line: 977,
                       column: 5,
                      },
                      end: Position {
                       line: 977,
                       column: 8,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "lib",
                        span: Span {
                         start: Position {
                          line: 977,
                          column: 11,
                         },
                         end: Position {
                          line: 977,
                          column: 14,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "genList",
                         span: Span {
                          start: Position {
                           line: 977,
                           column: 15,
                          },
                          end: Position {
                           line: 977,
                           column: 22,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     Function(
                      Function {
                       head: Simple(
                        FunctionHeadSimple {
                         identifier: "i",
                        },
                       ),
                       body: FunctionApplication(
                        FunctionApplication {
                         function: PropertyAccess(
                          PropertyAccess {
                           expression: Identifier(
                            Identifier {
                             id: "lib",
                             span: Span {
                              start: Position {
                               line: 978,
                               column: 7,
                              },
                              end: Position {
                               line: 978,
                               column: 10,
                              },
                             },
                            },
                           ),
                           attribute_path: [
                            Raw(
                             PartRaw {
                              content: "genList",
                              span: Span {
                               start: Position {
                                line: 978,
                                column: 11,
                               },
                               end: Position {
                                line: 978,
                                column: 18,
                               },
                              },
                             },
                            ),
                           ],
                           default: None,
                          },
                         ),
                         arguments: [
                          Function(
                           Function {
                            head: Simple(
                             FunctionHeadSimple {
                              identifier: "j",
                             },
                            ),
                            body: FunctionApplication(
                             FunctionApplication {
                              function: Identifier(
                               Identifier {
                                id: "dist",
                                span: Span {
                                 start: Position {
                                  line: 979,
                                  column: 9,
                                 },
                                 end: Position {
                                  line: 979,
                                  column: 13,
                                 },
                                },
                               },
                              ),
                              arguments: [
                               Identifier(
                                Identifier {
                                 id: "i",
                                 span: Span {
                                  start: Position {
                                   line: 979,
                                   column: 14,
                                  },
                                  end: Position {
                                   line: 979,
                                   column: 15,
                                  },
                                 },
                                },
                               ),
                               Identifier(
                                Identifier {
                                 id: "j",
                                 span: Span {
                                  start: Position {
                                   line: 979,
                                   column: 16,
                                  },
                                  end: Position {
                                   line: 979,
                                   column: 17,
                                  },
                                 },
                                },
                               ),
                              ],
                             },
                            ),
                            span: Span {
                             start: Position {
                              line: 978,
                              column: 20,
                             },
                             end: Position {
                              line: 979,
                              column: 17,
                             },
                            },
                           },
                          ),
                          BinaryOperation(
                           BinaryOperation {
                            left: FunctionApplication(
                             FunctionApplication {
                              function: Identifier(
                               Identifier {
                                id: "stringLength",
                                span: Span {
                                 start: Position {
                                  line: 980,
                                  column: 10,
                                 },
                                 end: Position {
                                  line: 980,
                                  column: 22,
                                 },
                                },
                               },
                              ),
                              arguments: [
                               Identifier(
                                Identifier {
                                 id: "b",
                                 span: Span {
                                  start: Position {
                                   line: 980,
                                   column: 23,
                                  },
                                  end: Position {
                                   line: 980,
                                   column: 24,
                                  },
                                 },
                                },
                               ),
                              ],
                             },
                            ),
                            operator: Addition,
                            right: Integer(
                             Integer {
                              value: "1",
                              span: Span {
                               start: Position {
                                line: 980,
                                column: 27,
                               },
                               end: Position {
                                line: 980,
                                column: 28,
                               },
                              },
                             },
                            ),
                           },
                          ),
                         ],
                        },
                       ),
                       span: Span {
                        start: Position {
                         line: 977,
                         column: 24,
                        },
                        end: Position {
                         line: 980,
                         column: 29,
                        },
                       },
                      },
                     ),
                     BinaryOperation(
                      BinaryOperation {
                       left: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "stringLength",
                           span: Span {
                            start: Position {
                             line: 981,
                             column: 8,
                            },
                            end: Position {
                             line: 981,
                             column: 20,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Identifier(
                           Identifier {
                            id: "a",
                            span: Span {
                             start: Position {
                              line: 981,
                              column: 21,
                             },
                             end: Position {
                              line: 981,
                              column: 22,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                       operator: Addition,
                       right: Integer(
                        Integer {
                         value: "1",
                         span: Span {
                          start: Position {
                           line: 981,
                           column: 25,
                          },
                          end: Position {
                           line: 981,
                           column: 26,
                          },
                         },
                        },
                       ),
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "d",
                     span: Span {
                      start: Position {
                       line: 982,
                       column: 5,
                      },
                      end: Position {
                       line: 982,
                       column: 6,
                      },
                     },
                    },
                   ),
                  ],
                  to: Function(
                   Function {
                    head: Simple(
                     FunctionHeadSimple {
                      identifier: "x",
                     },
                    ),
                    body: Function(
                     Function {
                      head: Simple(
                       FunctionHeadSimple {
                        identifier: "y",
                       },
                      ),
                      body: FunctionApplication(
                       FunctionApplication {
                        function: PropertyAccess(
                         PropertyAccess {
                          expression: Identifier(
                           Identifier {
                            id: "lib",
                            span: Span {
                             start: Position {
                              line: 982,
                              column: 15,
                             },
                             end: Position {
                              line: 982,
                              column: 18,
                             },
                            },
                           },
                          ),
                          attribute_path: [
                           Raw(
                            PartRaw {
                             content: "elemAt",
                             span: Span {
                              start: Position {
                               line: 982,
                               column: 19,
                              },
                              end: Position {
                               line: 982,
                               column: 25,
                              },
                             },
                            },
                           ),
                          ],
                          default: None,
                         },
                        ),
                        arguments: [
                         FunctionApplication(
                          FunctionApplication {
                           function: PropertyAccess(
                            PropertyAccess {
                             expression: Identifier(
                              Identifier {
                               id: "lib",
                               span: Span {
                                start: Position {
                                 line: 982,
                                 column: 27,
                                },
                                end: Position {
                                 line: 982,
                                 column: 30,
                                },
                               },
                              },
                             ),
                             attribute_path: [
                              Raw(
                               PartRaw {
                                content: "elemAt",
                                span: Span {
                                 start: Position {
                                  line: 982,
                                  column: 31,
                                 },
                                 end: Position {
                                  line: 982,
                                  column: 37,
                                 },
                                },
                               },
                              ),
                             ],
                             default: None,
                            },
                           ),
                           arguments: [
                            Identifier(
                             Identifier {
                              id: "arr",
                              span: Span {
                               start: Position {
                                line: 982,
                                column: 38,
                               },
                               end: Position {
                                line: 982,
                                column: 41,
                               },
                              },
                             },
                            ),
                            Identifier(
                             Identifier {
                              id: "x",
                              span: Span {
                               start: Position {
                                line: 982,
                                column: 42,
                               },
                               end: Position {
                                line: 982,
                                column: 43,
                               },
                              },
                             },
                            ),
                           ],
                          },
                         ),
                         Identifier(
                          Identifier {
                           id: "y",
                           span: Span {
                            start: Position {
                             line: 982,
                             column: 45,
                            },
                            end: Position {
                             line: 982,
                             column: 46,
                            },
                           },
                          },
                         ),
                        ],
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 982,
                        column: 12,
                       },
                       end: Position {
                        line: 982,
                        column: 46,
                       },
                      },
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 982,
                      column: 9,
                     },
                     end: Position {
                      line: 982,
                      column: 46,
                     },
                    },
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "dist",
                     span: Span {
                      start: Position {
                       line: 983,
                       column: 5,
                      },
                      end: Position {
                       line: 983,
                       column: 9,
                      },
                     },
                    },
                   ),
                  ],
                  to: Function(
                   Function {
                    head: Simple(
                     FunctionHeadSimple {
                      identifier: "i",
                     },
                    ),
                    body: Function(
                     Function {
                      head: Simple(
                       FunctionHeadSimple {
                        identifier: "j",
                       },
                      ),
                      body: LetIn(
                       LetIn {
                        bindings: [
                         KeyValue(
                          BindingKeyValue {
                           from: [
                            Raw(
                             PartRaw {
                              content: "c",
                              span: Span {
                               start: Position {
                                line: 984,
                                column: 11,
                               },
                               end: Position {
                                line: 984,
                                column: 12,
                               },
                              },
                             },
                            ),
                           ],
                           to: IfThenElse(
                            IfThenElse {
                             predicate: BinaryOperation(
                              BinaryOperation {
                               left: FunctionApplication(
                                FunctionApplication {
                                 function: Identifier(
                                  Identifier {
                                   id: "substring",
                                   span: Span {
                                    start: Position {
                                     line: 984,
                                     column: 18,
                                    },
                                    end: Position {
                                     line: 984,
                                     column: 27,
                                    },
                                   },
                                  },
                                 ),
                                 arguments: [
                                  BinaryOperation(
                                   BinaryOperation {
                                    left: Identifier(
                                     Identifier {
                                      id: "i",
                                      span: Span {
                                       start: Position {
                                        line: 984,
                                        column: 29,
                                       },
                                       end: Position {
                                        line: 984,
                                        column: 30,
                                       },
                                      },
                                     },
                                    ),
                                    operator: Subtraction,
                                    right: Integer(
                                     Integer {
                                      value: "1",
                                      span: Span {
                                       start: Position {
                                        line: 984,
                                        column: 33,
                                       },
                                       end: Position {
                                        line: 984,
                                        column: 34,
                                       },
                                      },
                                     },
                                    ),
                                   },
                                  ),
                                  Integer(
                                   Integer {
                                    value: "1",
                                    span: Span {
                                     start: Position {
                                      line: 984,
                                      column: 36,
                                     },
                                     end: Position {
                                      line: 984,
                                      column: 37,
                                     },
                                    },
                                   },
                                  ),
                                  Identifier(
                                   Identifier {
                                    id: "a",
                                    span: Span {
                                     start: Position {
                                      line: 984,
                                      column: 38,
                                     },
                                     end: Position {
                                      line: 984,
                                      column: 39,
                                     },
                                    },
                                   },
                                  ),
                                 ],
                                },
                               ),
                               operator: EqualTo,
                               right: FunctionApplication(
                                FunctionApplication {
                                 function: Identifier(
                                  Identifier {
                                   id: "substring",
                                   span: Span {
                                    start: Position {
                                     line: 984,
                                     column: 43,
                                    },
                                    end: Position {
                                     line: 984,
                                     column: 52,
                                    },
                                   },
                                  },
                                 ),
                                 arguments: [
                                  BinaryOperation(
                                   BinaryOperation {
                                    left: Identifier(
                                     Identifier {
                                      id: "j",
                                      span: Span {
                                       start: Position {
                                        line: 984,
                                        column: 54,
                                       },
                                       end: Position {
                                        line: 984,
                                        column: 55,
                                       },
                                      },
                                     },
                                    ),
                                    operator: Subtraction,
                                    right: Integer(
                                     Integer {
                                      value: "1",
                                      span: Span {
                                       start: Position {
                                        line: 984,
                                        column: 58,
                                       },
                                       end: Position {
                                        line: 984,
                                        column: 59,
                                       },
                                      },
                                     },
                                    ),
                                   },
                                  ),
                                  Integer(
                                   Integer {
                                    value: "1",
                                    span: Span {
                                     start: Position {
                                      line: 984,
                                      column: 61,
                                     },
                                     end: Position {
                                      line: 984,
                                      column: 62,
                                     },
                                    },
                                   },
                                  ),
                                  Identifier(
                                   Identifier {
                                    id: "b",
                                    span: Span {
                                     start: Position {
                                      line: 984,
                                      column: 63,
                                     },
                                     end: Position {
                                      line: 984,
                                      column: 64,
                                     },
                                    },
                                   },
                                  ),
                                 ],
                                },
                               ),
                              },
                             ),
                             then: Integer(
                              Integer {
                               value: "0",
                               span: Span {
                                start: Position {
                                 line: 985,
                                 column: 14,
                                },
                                end: Position {
                                 line: 985,
                                 column: 15,
                                },
                               },
                              },
                             ),
                             else_: Integer(
                              Integer {
                               value: "1",
                               span: Span {
                                start: Position {
                                 line: 985,
                                 column: 21,
                                },
                                end: Position {
                                 line: 985,
                                 column: 22,
                                },
                               },
                              },
                             ),
                             span: Span {
                              start: Position {
                               line: 984,
                               column: 15,
                              },
                              end: Position {
                               line: 985,
                               column: 22,
                              },
                             },
                            },
                           ),
                          },
                         ),
                        ],
                        target: IfThenElse(
                         IfThenElse {
                          predicate: BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "j",
                              span: Span {
                               start: Position {
                                line: 987,
                                column: 10,
                               },
                               end: Position {
                                line: 987,
                                column: 11,
                               },
                              },
                             },
                            ),
                            operator: EqualTo,
                            right: Integer(
                             Integer {
                              value: "0",
                              span: Span {
                               start: Position {
                                line: 987,
                                column: 15,
                               },
                               end: Position {
                                line: 987,
                                column: 16,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          then: Identifier(
                           Identifier {
                            id: "i",
                            span: Span {
                             start: Position {
                              line: 987,
                              column: 22,
                             },
                             end: Position {
                              line: 987,
                              column: 23,
                             },
                            },
                           },
                          ),
                          else_: IfThenElse(
                           IfThenElse {
                            predicate: BinaryOperation(
                             BinaryOperation {
                              left: Identifier(
                               Identifier {
                                id: "i",
                                span: Span {
                                 start: Position {
                                  line: 988,
                                  column: 15,
                                 },
                                 end: Position {
                                  line: 988,
                                  column: 16,
                                 },
                                },
                               },
                              ),
                              operator: EqualTo,
                              right: Integer(
                               Integer {
                                value: "0",
                                span: Span {
                                 start: Position {
                                  line: 988,
                                  column: 20,
                                 },
                                 end: Position {
                                  line: 988,
                                  column: 21,
                                 },
                                },
                               },
                              ),
                             },
                            ),
                            then: Identifier(
                             Identifier {
                              id: "j",
                              span: Span {
                               start: Position {
                                line: 988,
                                column: 27,
                               },
                               end: Position {
                                line: 988,
                                column: 28,
                               },
                              },
                             },
                            ),
                            else_: FunctionApplication(
                             FunctionApplication {
                              function: PropertyAccess(
                               PropertyAccess {
                                expression: Identifier(
                                 Identifier {
                                  id: "lib",
                                  span: Span {
                                   start: Position {
                                    line: 989,
                                    column: 12,
                                   },
                                   end: Position {
                                    line: 989,
                                    column: 15,
                                   },
                                  },
                                 },
                                ),
                                attribute_path: [
                                 Raw(
                                  PartRaw {
                                   content: "min",
                                   span: Span {
                                    start: Position {
                                     line: 989,
                                     column: 16,
                                    },
                                    end: Position {
                                     line: 989,
                                     column: 19,
                                    },
                                   },
                                  },
                                 ),
                                ],
                                default: None,
                               },
                              ),
                              arguments: [
                               FunctionApplication(
                                FunctionApplication {
                                 function: PropertyAccess(
                                  PropertyAccess {
                                   expression: Identifier(
                                    Identifier {
                                     id: "lib",
                                     span: Span {
                                      start: Position {
                                       line: 990,
                                       column: 11,
                                      },
                                      end: Position {
                                       line: 990,
                                       column: 14,
                                      },
                                     },
                                    },
                                   ),
                                   attribute_path: [
                                    Raw(
                                     PartRaw {
                                      content: "min",
                                      span: Span {
                                       start: Position {
                                        line: 990,
                                        column: 15,
                                       },
                                       end: Position {
                                        line: 990,
                                        column: 18,
                                       },
                                      },
                                     },
                                    ),
                                   ],
                                   default: None,
                                  },
                                 ),
                                 arguments: [
                                  BinaryOperation(
                                   BinaryOperation {
                                    left: FunctionApplication(
                                     FunctionApplication {
                                      function: Identifier(
                                       Identifier {
                                        id: "d",
                                        span: Span {
                                         start: Position {
                                          line: 990,
                                          column: 20,
                                         },
                                         end: Position {
                                          line: 990,
                                          column: 21,
                                         },
                                        },
                                       },
                                      ),
                                      arguments: [
                                       BinaryOperation(
                                        BinaryOperation {
                                         left: Identifier(
                                          Identifier {
                                           id: "i",
                                           span: Span {
                                            start: Position {
                                             line: 990,
                                             column: 23,
                                            },
                                            end: Position {
                                             line: 990,
                                             column: 24,
                                            },
                                           },
                                          },
                                         ),
                                         operator: Subtraction,
                                         right: Integer(
                                          Integer {
                                           value: "1",
                                           span: Span {
                                            start: Position {
                                             line: 990,
                                             column: 27,
                                            },
                                            end: Position {
                                             line: 990,
                                             column: 28,
                                            },
                                           },
                                          },
                                         ),
                                        },
                                       ),
                                       Identifier(
                                        Identifier {
                                         id: "j",
                                         span: Span {
                                          start: Position {
                                           line: 990,
                                           column: 30,
                                          },
                                          end: Position {
                                           line: 990,
                                           column: 31,
                                          },
                                         },
                                        },
                                       ),
                                      ],
                                     },
                                    ),
                                    operator: Addition,
                                    right: Integer(
                                     Integer {
                                      value: "1",
                                      span: Span {
                                       start: Position {
                                        line: 990,
                                        column: 34,
                                       },
                                       end: Position {
                                        line: 990,
                                        column: 35,
                                       },
                                      },
                                     },
                                    ),
                                   },
                                  ),
                                  BinaryOperation(
                                   BinaryOperation {
                                    left: FunctionApplication(
                                     FunctionApplication {
                                      function: Identifier(
                                       Identifier {
                                        id: "d",
                                        span: Span {
                                         start: Position {
                                          line: 990,
                                          column: 38,
                                         },
                                         end: Position {
                                          line: 990,
                                          column: 39,
                                         },
                                        },
                                       },
                                      ),
                                      arguments: [
                                       Identifier(
                                        Identifier {
                                         id: "i",
                                         span: Span {
                                          start: Position {
                                           line: 990,
                                           column: 40,
                                          },
                                          end: Position {
                                           line: 990,
                                           column: 41,
                                          },
                                         },
                                        },
                                       ),
                                       BinaryOperation(
                                        BinaryOperation {
                                         left: Identifier(
                                          Identifier {
                                           id: "j",
                                           span: Span {
                                            start: Position {
                                             line: 990,
                                             column: 43,
                                            },
                                            end: Position {
                                             line: 990,
                                             column: 44,
                                            },
                                           },
                                          },
                                         ),
                                         operator: Subtraction,
                                         right: Integer(
                                          Integer {
                                           value: "1",
                                           span: Span {
                                            start: Position {
                                             line: 990,
                                             column: 47,
                                            },
                                            end: Position {
                                             line: 990,
                                             column: 48,
                                            },
                                           },
                                          },
                                         ),
                                        },
                                       ),
                                      ],
                                     },
                                    ),
                                    operator: Addition,
                                    right: Integer(
                                     Integer {
                                      value: "1",
                                      span: Span {
                                       start: Position {
                                        line: 990,
                                        column: 52,
                                       },
                                       end: Position {
                                        line: 990,
                                        column: 53,
                                       },
                                      },
                                     },
                                    ),
                                   },
                                  ),
                                 ],
                                },
                               ),
                               BinaryOperation(
                                BinaryOperation {
                                 left: FunctionApplication(
                                  FunctionApplication {
                                   function: Identifier(
                                    Identifier {
                                     id: "d",
                                     span: Span {
                                      start: Position {
                                       line: 991,
                                       column: 11,
                                      },
                                      end: Position {
                                       line: 991,
                                       column: 12,
                                      },
                                     },
                                    },
                                   ),
                                   arguments: [
                                    BinaryOperation(
                                     BinaryOperation {
                                      left: Identifier(
                                       Identifier {
                                        id: "i",
                                        span: Span {
                                         start: Position {
                                          line: 991,
                                          column: 14,
                                         },
                                         end: Position {
                                          line: 991,
                                          column: 15,
                                         },
                                        },
                                       },
                                      ),
                                      operator: Subtraction,
                                      right: Integer(
                                       Integer {
                                        value: "1",
                                        span: Span {
                                         start: Position {
                                          line: 991,
                                          column: 18,
                                         },
                                         end: Position {
                                          line: 991,
                                          column: 19,
                                         },
                                        },
                                       },
                                      ),
                                     },
                                    ),
                                    BinaryOperation(
                                     BinaryOperation {
                                      left: Identifier(
                                       Identifier {
                                        id: "j",
                                        span: Span {
                                         start: Position {
                                          line: 991,
                                          column: 22,
                                         },
                                         end: Position {
                                          line: 991,
                                          column: 23,
                                         },
                                        },
                                       },
                                      ),
                                      operator: Subtraction,
                                      right: Integer(
                                       Integer {
                                        value: "1",
                                        span: Span {
                                         start: Position {
                                          line: 991,
                                          column: 26,
                                         },
                                         end: Position {
                                          line: 991,
                                          column: 27,
                                         },
                                        },
                                       },
                                      ),
                                     },
                                    ),
                                   ],
                                  },
                                 ),
                                 operator: Addition,
                                 right: Identifier(
                                  Identifier {
                                   id: "c",
                                   span: Span {
                                    start: Position {
                                     line: 991,
                                     column: 31,
                                    },
                                    end: Position {
                                     line: 991,
                                     column: 32,
                                    },
                                   },
                                  },
                                 ),
                                },
                               ),
                              ],
                             },
                            ),
                            span: Span {
                             start: Position {
                              line: 988,
                              column: 12,
                             },
                             end: Position {
                              line: 991,
                              column: 34,
                             },
                            },
                           },
                          ),
                          span: Span {
                           start: Position {
                            line: 987,
                            column: 7,
                           },
                           end: Position {
                            line: 991,
                            column: 34,
                           },
                          },
                         },
                        ),
                        span: Span {
                         start: Position {
                          line: 984,
                          column: 7,
                         },
                         end: Position {
                          line: 991,
                          column: 34,
                         },
                        },
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 983,
                        column: 15,
                       },
                       end: Position {
                        line: 991,
                        column: 34,
                       },
                      },
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 983,
                      column: 12,
                     },
                     end: Position {
                      line: 991,
                      column: 34,
                     },
                    },
                   },
                  ),
                 },
                ),
               ],
               target: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "d",
                   span: Span {
                    start: Position {
                     line: 992,
                     column: 6,
                    },
                    end: Position {
                     line: 992,
                     column: 7,
                    },
                   },
                  },
                 ),
                 arguments: [
                  FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "stringLength",
                      span: Span {
                       start: Position {
                        line: 992,
                        column: 9,
                       },
                       end: Position {
                        line: 992,
                        column: 21,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "a",
                       span: Span {
                        start: Position {
                         line: 992,
                         column: 22,
                        },
                        end: Position {
                         line: 992,
                         column: 23,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                  FunctionApplication(
                   FunctionApplication {
                    function: Identifier(
                     Identifier {
                      id: "stringLength",
                      span: Span {
                       start: Position {
                        line: 992,
                        column: 26,
                       },
                       end: Position {
                        line: 992,
                        column: 38,
                       },
                      },
                     },
                    ),
                    arguments: [
                     Identifier(
                      Identifier {
                       id: "b",
                       span: Span {
                        start: Position {
                         line: 992,
                         column: 39,
                        },
                        end: Position {
                         line: 992,
                         column: 40,
                        },
                       },
                      },
                     ),
                    ],
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 975,
                 column: 23,
                },
                end: Position {
                 line: 992,
                 column: 41,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 975,
               column: 20,
              },
              end: Position {
               line: 992,
               column: 41,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 975,
             column: 17,
            },
            end: Position {
             line: 992,
             column: 41,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "commonPrefixLength",
            span: Span {
             start: Position {
              line: 996,
              column: 3,
             },
             end: Position {
              line: 996,
              column: 21,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "a",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "b",
              },
             ),
             body: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "m",
                     span: Span {
                      start: Position {
                       line: 998,
                       column: 7,
                      },
                      end: Position {
                       line: 998,
                       column: 8,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "lib",
                        span: Span {
                         start: Position {
                          line: 998,
                          column: 11,
                         },
                         end: Position {
                          line: 998,
                          column: 14,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "min",
                         span: Span {
                          start: Position {
                           line: 998,
                           column: 15,
                          },
                          end: Position {
                           line: 998,
                           column: 18,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "stringLength",
                         span: Span {
                          start: Position {
                           line: 998,
                           column: 20,
                          },
                          end: Position {
                           line: 998,
                           column: 32,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "a",
                          span: Span {
                           start: Position {
                            line: 998,
                            column: 33,
                           },
                           end: Position {
                            line: 998,
                            column: 34,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "stringLength",
                         span: Span {
                          start: Position {
                           line: 998,
                           column: 37,
                          },
                          end: Position {
                           line: 998,
                           column: 49,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "b",
                          span: Span {
                           start: Position {
                            line: 998,
                            column: 50,
                           },
                           end: Position {
                            line: 998,
                            column: 51,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "go",
                     span: Span {
                      start: Position {
                       line: 999,
                       column: 7,
                      },
                      end: Position {
                       line: 999,
                       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: 999,
                            column: 18,
                           },
                           end: Position {
                            line: 999,
                            column: 19,
                           },
                          },
                         },
                        ),
                        operator: GreaterThanOrEqualTo,
                        right: Identifier(
                         Identifier {
                          id: "m",
                          span: Span {
                           start: Position {
                            line: 999,
                            column: 23,
                           },
                           end: Position {
                            line: 999,
                            column: 24,
                           },
                          },
                         },
                        ),
                       },
                      ),
                      then: Identifier(
                       Identifier {
                        id: "m",
                        span: Span {
                         start: Position {
                          line: 999,
                          column: 30,
                         },
                         end: Position {
                          line: 999,
                          column: 31,
                         },
                        },
                       },
                      ),
                      else_: IfThenElse(
                       IfThenElse {
                        predicate: BinaryOperation(
                         BinaryOperation {
                          left: FunctionApplication(
                           FunctionApplication {
                            function: Identifier(
                             Identifier {
                              id: "substring",
                              span: Span {
                               start: Position {
                                line: 999,
                                column: 40,
                               },
                               end: Position {
                                line: 999,
                                column: 49,
                               },
                              },
                             },
                            ),
                            arguments: [
                             Identifier(
                              Identifier {
                               id: "i",
                               span: Span {
                                start: Position {
                                 line: 999,
                                 column: 50,
                                },
                                end: Position {
                                 line: 999,
                                 column: 51,
                                },
                               },
                              },
                             ),
                             Integer(
                              Integer {
                               value: "1",
                               span: Span {
                                start: Position {
                                 line: 999,
                                 column: 52,
                                },
                                end: Position {
                                 line: 999,
                                 column: 53,
                                },
                               },
                              },
                             ),
                             Identifier(
                              Identifier {
                               id: "a",
                               span: Span {
                                start: Position {
                                 line: 999,
                                 column: 54,
                                },
                                end: Position {
                                 line: 999,
                                 column: 55,
                                },
                               },
                              },
                             ),
                            ],
                           },
                          ),
                          operator: EqualTo,
                          right: FunctionApplication(
                           FunctionApplication {
                            function: Identifier(
                             Identifier {
                              id: "substring",
                              span: Span {
                               start: Position {
                                line: 999,
                                column: 59,
                               },
                               end: Position {
                                line: 999,
                                column: 68,
                               },
                              },
                             },
                            ),
                            arguments: [
                             Identifier(
                              Identifier {
                               id: "i",
                               span: Span {
                                start: Position {
                                 line: 999,
                                 column: 69,
                                },
                                end: Position {
                                 line: 999,
                                 column: 70,
                                },
                               },
                              },
                             ),
                             Integer(
                              Integer {
                               value: "1",
                               span: Span {
                                start: Position {
                                 line: 999,
                                 column: 71,
                                },
                                end: Position {
                                 line: 999,
                                 column: 72,
                                },
                               },
                              },
                             ),
                             Identifier(
                              Identifier {
                               id: "b",
                               span: Span {
                                start: Position {
                                 line: 999,
                                 column: 73,
                                },
                                end: Position {
                                 line: 999,
                                 column: 74,
                                },
                               },
                              },
                             ),
                            ],
                           },
                          ),
                         },
                        ),
                        then: FunctionApplication(
                         FunctionApplication {
                          function: Identifier(
                           Identifier {
                            id: "go",
                            span: Span {
                             start: Position {
                              line: 999,
                              column: 80,
                             },
                             end: Position {
                              line: 999,
                              column: 82,
                             },
                            },
                           },
                          ),
                          arguments: [
                           BinaryOperation(
                            BinaryOperation {
                             left: Identifier(
                              Identifier {
                               id: "i",
                               span: Span {
                                start: Position {
                                 line: 999,
                                 column: 84,
                                },
                                end: Position {
                                 line: 999,
                                 column: 85,
                                },
                               },
                              },
                             ),
                             operator: Addition,
                             right: Integer(
                              Integer {
                               value: "1",
                               span: Span {
                                start: Position {
                                 line: 999,
                                 column: 88,
                                },
                                end: Position {
                                 line: 999,
                                 column: 89,
                                },
                               },
                              },
                             ),
                            },
                           ),
                          ],
                         },
                        ),
                        else_: Identifier(
                         Identifier {
                          id: "i",
                          span: Span {
                           start: Position {
                            line: 999,
                            column: 96,
                           },
                           end: Position {
                            line: 999,
                            column: 97,
                           },
                          },
                         },
                        ),
                        span: Span {
                         start: Position {
                          line: 999,
                          column: 37,
                         },
                         end: Position {
                          line: 999,
                          column: 97,
                         },
                        },
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 999,
                        column: 15,
                       },
                       end: Position {
                        line: 999,
                        column: 97,
                       },
                      },
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 999,
                      column: 12,
                     },
                     end: Position {
                      line: 999,
                      column: 97,
                     },
                    },
                   },
                  ),
                 },
                ),
               ],
               target: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "go",
                   span: Span {
                    start: Position {
                     line: 1000,
                     column: 8,
                    },
                    end: Position {
                     line: 1000,
                     column: 10,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Integer(
                   Integer {
                    value: "0",
                    span: Span {
                     start: Position {
                      line: 1000,
                      column: 11,
                     },
                     end: Position {
                      line: 1000,
                      column: 12,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 997,
                 column: 5,
                },
                end: Position {
                 line: 1000,
                 column: 12,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 996,
               column: 27,
              },
              end: Position {
               line: 1000,
               column: 12,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 996,
             column: 24,
            },
            end: Position {
             line: 1000,
             column: 12,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "commonSuffixLength",
            span: Span {
             start: Position {
              line: 1004,
              column: 3,
             },
             end: Position {
              line: 1004,
              column: 21,
             },
            },
           },
          ),
         ],
         to: Function(
          Function {
           head: Simple(
            FunctionHeadSimple {
             identifier: "a",
            },
           ),
           body: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "b",
              },
             ),
             body: LetIn(
              LetIn {
               bindings: [
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "m",
                     span: Span {
                      start: Position {
                       line: 1006,
                       column: 7,
                      },
                      end: Position {
                       line: 1006,
                       column: 8,
                      },
                     },
                    },
                   ),
                  ],
                  to: FunctionApplication(
                   FunctionApplication {
                    function: PropertyAccess(
                     PropertyAccess {
                      expression: Identifier(
                       Identifier {
                        id: "lib",
                        span: Span {
                         start: Position {
                          line: 1006,
                          column: 11,
                         },
                         end: Position {
                          line: 1006,
                          column: 14,
                         },
                        },
                       },
                      ),
                      attribute_path: [
                       Raw(
                        PartRaw {
                         content: "min",
                         span: Span {
                          start: Position {
                           line: 1006,
                           column: 15,
                          },
                          end: Position {
                           line: 1006,
                           column: 18,
                          },
                         },
                        },
                       ),
                      ],
                      default: None,
                     },
                    ),
                    arguments: [
                     FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "stringLength",
                         span: Span {
                          start: Position {
                           line: 1006,
                           column: 20,
                          },
                          end: Position {
                           line: 1006,
                           column: 32,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "a",
                          span: Span {
                           start: Position {
                            line: 1006,
                            column: 33,
                           },
                           end: Position {
                            line: 1006,
                            column: 34,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                     FunctionApplication(
                      FunctionApplication {
                       function: Identifier(
                        Identifier {
                         id: "stringLength",
                         span: Span {
                          start: Position {
                           line: 1006,
                           column: 37,
                          },
                          end: Position {
                           line: 1006,
                           column: 49,
                          },
                         },
                        },
                       ),
                       arguments: [
                        Identifier(
                         Identifier {
                          id: "b",
                          span: Span {
                           start: Position {
                            line: 1006,
                            column: 50,
                           },
                           end: Position {
                            line: 1006,
                            column: 51,
                           },
                          },
                         },
                        ),
                       ],
                      },
                     ),
                    ],
                   },
                  ),
                 },
                ),
                KeyValue(
                 BindingKeyValue {
                  from: [
                   Raw(
                    PartRaw {
                     content: "go",
                     span: Span {
                      start: Position {
                       line: 1007,
                       column: 7,
                      },
                      end: Position {
                       line: 1007,
                       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: 1007,
                            column: 18,
                           },
                           end: Position {
                            line: 1007,
                            column: 19,
                           },
                          },
                         },
                        ),
                        operator: GreaterThanOrEqualTo,
                        right: Identifier(
                         Identifier {
                          id: "m",
                          span: Span {
                           start: Position {
                            line: 1007,
                            column: 23,
                           },
                           end: Position {
                            line: 1007,
                            column: 24,
                           },
                          },
                         },
                        ),
                       },
                      ),
                      then: Identifier(
                       Identifier {
                        id: "m",
                        span: Span {
                         start: Position {
                          line: 1007,
                          column: 30,
                         },
                         end: Position {
                          line: 1007,
                          column: 31,
                         },
                        },
                       },
                      ),
                      else_: IfThenElse(
                       IfThenElse {
                        predicate: BinaryOperation(
                         BinaryOperation {
                          left: FunctionApplication(
                           FunctionApplication {
                            function: Identifier(
                             Identifier {
                              id: "substring",
                              span: Span {
                               start: Position {
                                line: 1007,
                                column: 40,
                               },
                               end: Position {
                                line: 1007,
                                column: 49,
                               },
                              },
                             },
                            ),
                            arguments: [
                             BinaryOperation(
                              BinaryOperation {
                               left: BinaryOperation(
                                BinaryOperation {
                                 left: FunctionApplication(
                                  FunctionApplication {
                                   function: Identifier(
                                    Identifier {
                                     id: "stringLength",
                                     span: Span {
                                      start: Position {
                                       line: 1007,
                                       column: 51,
                                      },
                                      end: Position {
                                       line: 1007,
                                       column: 63,
                                      },
                                     },
                                    },
                                   ),
                                   arguments: [
                                    Identifier(
                                     Identifier {
                                      id: "a",
                                      span: Span {
                                       start: Position {
                                        line: 1007,
                                        column: 64,
                                       },
                                       end: Position {
                                        line: 1007,
                                        column: 65,
                                       },
                                      },
                                     },
                                    ),
                                   ],
                                  },
                                 ),
                                 operator: Subtraction,
                                 right: Identifier(
                                  Identifier {
                                   id: "i",
                                   span: Span {
                                    start: Position {
                                     line: 1007,
                                     column: 68,
                                    },
                                    end: Position {
                                     line: 1007,
                                     column: 69,
                                    },
                                   },
                                  },
                                 ),
                                },
                               ),
                               operator: Subtraction,
                               right: Integer(
                                Integer {
                                 value: "1",
                                 span: Span {
                                  start: Position {
                                   line: 1007,
                                   column: 72,
                                  },
                                  end: Position {
                                   line: 1007,
                                   column: 73,
                                  },
                                 },
                                },
                               ),
                              },
                             ),
                             Integer(
                              Integer {
                               value: "1",
                               span: Span {
                                start: Position {
                                 line: 1007,
                                 column: 75,
                                },
                                end: Position {
                                 line: 1007,
                                 column: 76,
                                },
                               },
                              },
                             ),
                             Identifier(
                              Identifier {
                               id: "a",
                               span: Span {
                                start: Position {
                                 line: 1007,
                                 column: 77,
                                },
                                end: Position {
                                 line: 1007,
                                 column: 78,
                                },
                               },
                              },
                             ),
                            ],
                           },
                          ),
                          operator: EqualTo,
                          right: FunctionApplication(
                           FunctionApplication {
                            function: Identifier(
                             Identifier {
                              id: "substring",
                              span: Span {
                               start: Position {
                                line: 1007,
                                column: 82,
                               },
                               end: Position {
                                line: 1007,
                                column: 91,
                               },
                              },
                             },
                            ),
                            arguments: [
                             BinaryOperation(
                              BinaryOperation {
                               left: BinaryOperation(
                                BinaryOperation {
                                 left: FunctionApplication(
                                  FunctionApplication {
                                   function: Identifier(
                                    Identifier {
                                     id: "stringLength",
                                     span: Span {
                                      start: Position {
                                       line: 1007,
                                       column: 93,
                                      },
                                      end: Position {
                                       line: 1007,
                                       column: 105,
                                      },
                                     },
                                    },
                                   ),
                                   arguments: [
                                    Identifier(
                                     Identifier {
                                      id: "b",
                                      span: Span {
                                       start: Position {
                                        line: 1007,
                                        column: 106,
                                       },
                                       end: Position {
                                        line: 1007,
                                        column: 107,
                                       },
                                      },
                                     },
                                    ),
                                   ],
                                  },
                                 ),
                                 operator: Subtraction,
                                 right: Identifier(
                                  Identifier {
                                   id: "i",
                                   span: Span {
                                    start: Position {
                                     line: 1007,
                                     column: 110,
                                    },
                                    end: Position {
                                     line: 1007,
                                     column: 111,
                                    },
                                   },
                                  },
                                 ),
                                },
                               ),
                               operator: Subtraction,
                               right: Integer(
                                Integer {
                                 value: "1",
                                 span: Span {
                                  start: Position {
                                   line: 1007,
                                   column: 114,
                                  },
                                  end: Position {
                                   line: 1007,
                                   column: 115,
                                  },
                                 },
                                },
                               ),
                              },
                             ),
                             Integer(
                              Integer {
                               value: "1",
                               span: Span {
                                start: Position {
                                 line: 1007,
                                 column: 117,
                                },
                                end: Position {
                                 line: 1007,
                                 column: 118,
                                },
                               },
                              },
                             ),
                             Identifier(
                              Identifier {
                               id: "b",
                               span: Span {
                                start: Position {
                                 line: 1007,
                                 column: 119,
                                },
                                end: Position {
                                 line: 1007,
                                 column: 120,
                                },
                               },
                              },
                             ),
                            ],
                           },
                          ),
                         },
                        ),
                        then: FunctionApplication(
                         FunctionApplication {
                          function: Identifier(
                           Identifier {
                            id: "go",
                            span: Span {
                             start: Position {
                              line: 1007,
                              column: 126,
                             },
                             end: Position {
                              line: 1007,
                              column: 128,
                             },
                            },
                           },
                          ),
                          arguments: [
                           BinaryOperation(
                            BinaryOperation {
                             left: Identifier(
                              Identifier {
                               id: "i",
                               span: Span {
                                start: Position {
                                 line: 1007,
                                 column: 130,
                                },
                                end: Position {
                                 line: 1007,
                                 column: 131,
                                },
                               },
                              },
                             ),
                             operator: Addition,
                             right: Integer(
                              Integer {
                               value: "1",
                               span: Span {
                                start: Position {
                                 line: 1007,
                                 column: 134,
                                },
                                end: Position {
                                 line: 1007,
                                 column: 135,
                                },
                               },
                              },
                             ),
                            },
                           ),
                          ],
                         },
                        ),
                        else_: Identifier(
                         Identifier {
                          id: "i",
                          span: Span {
                           start: Position {
                            line: 1007,
                            column: 142,
                           },
                           end: Position {
                            line: 1007,
                            column: 143,
                           },
                          },
                         },
                        ),
                        span: Span {
                         start: Position {
                          line: 1007,
                          column: 37,
                         },
                         end: Position {
                          line: 1007,
                          column: 143,
                         },
                        },
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 1007,
                        column: 15,
                       },
                       end: Position {
                        line: 1007,
                        column: 143,
                       },
                      },
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 1007,
                      column: 12,
                     },
                     end: Position {
                      line: 1007,
                      column: 143,
                     },
                    },
                   },
                  ),
                 },
                ),
               ],
               target: FunctionApplication(
                FunctionApplication {
                 function: Identifier(
                  Identifier {
                   id: "go",
                   span: Span {
                    start: Position {
                     line: 1008,
                     column: 8,
                    },
                    end: Position {
                     line: 1008,
                     column: 10,
                    },
                   },
                  },
                 ),
                 arguments: [
                  Integer(
                   Integer {
                    value: "0",
                    span: Span {
                     start: Position {
                      line: 1008,
                      column: 11,
                     },
                     end: Position {
                      line: 1008,
                      column: 12,
                     },
                    },
                   },
                  ),
                 ],
                },
               ),
               span: Span {
                start: Position {
                 line: 1005,
                 column: 5,
                },
                end: Position {
                 line: 1008,
                 column: 12,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 1004,
               column: 27,
              },
              end: Position {
               line: 1008,
               column: 12,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 1004,
             column: 24,
            },
            end: Position {
             line: 1008,
             column: 12,
            },
           },
          },
         ),
        },
       ),
       KeyValue(
        BindingKeyValue {
         from: [
          Raw(
           PartRaw {
            content: "levenshteinAtMost",
            span: Span {
             start: Position {
              line: 1028,
              column: 3,
             },
             end: Position {
              line: 1028,
              column: 20,
             },
            },
           },
          ),
         ],
         to: LetIn(
          LetIn {
           bindings: [
            KeyValue(
             BindingKeyValue {
              from: [
               Raw(
                PartRaw {
                 content: "infixDifferAtMost1",
                 span: Span {
                  start: Position {
                   line: 1029,
                   column: 5,
                  },
                  end: Position {
                   line: 1029,
                   column: 23,
                  },
                 },
                },
               ),
              ],
              to: Function(
               Function {
                head: Simple(
                 FunctionHeadSimple {
                  identifier: "x",
                 },
                ),
                body: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "y",
                   },
                  ),
                  body: BinaryOperation(
                   BinaryOperation {
                    left: BinaryOperation(
                     BinaryOperation {
                      left: FunctionApplication(
                       FunctionApplication {
                        function: Identifier(
                         Identifier {
                          id: "stringLength",
                          span: Span {
                           start: Position {
                            line: 1029,
                            column: 32,
                           },
                           end: Position {
                            line: 1029,
                            column: 44,
                           },
                          },
                         },
                        ),
                        arguments: [
                         Identifier(
                          Identifier {
                           id: "x",
                           span: Span {
                            start: Position {
                             line: 1029,
                             column: 45,
                            },
                            end: Position {
                             line: 1029,
                             column: 46,
                            },
                           },
                          },
                         ),
                        ],
                       },
                      ),
                      operator: LessThanOrEqualTo,
                      right: Integer(
                       Integer {
                        value: "1",
                        span: Span {
                         start: Position {
                          line: 1029,
                          column: 50,
                         },
                         end: Position {
                          line: 1029,
                          column: 51,
                         },
                        },
                       },
                      ),
                     },
                    ),
                    operator: LogicalAnd,
                    right: BinaryOperation(
                     BinaryOperation {
                      left: FunctionApplication(
                       FunctionApplication {
                        function: Identifier(
                         Identifier {
                          id: "stringLength",
                          span: Span {
                           start: Position {
                            line: 1029,
                            column: 55,
                           },
                           end: Position {
                            line: 1029,
                            column: 67,
                           },
                          },
                         },
                        ),
                        arguments: [
                         Identifier(
                          Identifier {
                           id: "y",
                           span: Span {
                            start: Position {
                             line: 1029,
                             column: 68,
                            },
                            end: Position {
                             line: 1029,
                             column: 69,
                            },
                           },
                          },
                         ),
                        ],
                       },
                      ),
                      operator: LessThanOrEqualTo,
                      right: Integer(
                       Integer {
                        value: "1",
                        span: Span {
                         start: Position {
                          line: 1029,
                          column: 73,
                         },
                         end: Position {
                          line: 1029,
                          column: 74,
                         },
                        },
                       },
                      ),
                     },
                    ),
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 1029,
                    column: 29,
                   },
                   end: Position {
                    line: 1029,
                    column: 74,
                   },
                  },
                 },
                ),
                span: Span {
                 start: Position {
                  line: 1029,
                  column: 26,
                 },
                 end: Position {
                  line: 1029,
                  column: 74,
                 },
                },
               },
              ),
             },
            ),
            KeyValue(
             BindingKeyValue {
              from: [
               Raw(
                PartRaw {
                 content: "infixDifferAtMost2",
                 span: Span {
                  start: Position {
                   line: 1037,
                   column: 5,
                  },
                  end: Position {
                   line: 1037,
                   column: 23,
                  },
                 },
                },
               ),
              ],
              to: Function(
               Function {
                head: Simple(
                 FunctionHeadSimple {
                  identifier: "x",
                 },
                ),
                body: Function(
                 Function {
                  head: Simple(
                   FunctionHeadSimple {
                    identifier: "y",
                   },
                  ),
                  body: LetIn(
                   LetIn {
                    bindings: [
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "xlen",
                          span: Span {
                           start: Position {
                            line: 1039,
                            column: 9,
                           },
                           end: Position {
                            line: 1039,
                            column: 13,
                           },
                          },
                         },
                        ),
                       ],
                       to: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "stringLength",
                           span: Span {
                            start: Position {
                             line: 1039,
                             column: 16,
                            },
                            end: Position {
                             line: 1039,
                             column: 28,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Identifier(
                           Identifier {
                            id: "x",
                            span: Span {
                             start: Position {
                              line: 1039,
                              column: 29,
                             },
                             end: Position {
                              line: 1039,
                              column: 30,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "ylen",
                          span: Span {
                           start: Position {
                            line: 1040,
                            column: 9,
                           },
                           end: Position {
                            line: 1040,
                            column: 13,
                           },
                          },
                         },
                        ),
                       ],
                       to: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "stringLength",
                           span: Span {
                            start: Position {
                             line: 1040,
                             column: 16,
                            },
                            end: Position {
                             line: 1040,
                             column: 28,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Identifier(
                           Identifier {
                            id: "y",
                            span: Span {
                             start: Position {
                              line: 1040,
                              column: 29,
                             },
                             end: Position {
                              line: 1040,
                              column: 30,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "diff",
                          span: Span {
                           start: Position {
                            line: 1043,
                            column: 9,
                           },
                           end: Position {
                            line: 1043,
                            column: 13,
                           },
                          },
                         },
                        ),
                       ],
                       to: BinaryOperation(
                        BinaryOperation {
                         left: Identifier(
                          Identifier {
                           id: "xlen",
                           span: Span {
                            start: Position {
                             line: 1043,
                             column: 16,
                            },
                            end: Position {
                             line: 1043,
                             column: 20,
                            },
                           },
                          },
                         ),
                         operator: Subtraction,
                         right: Identifier(
                          Identifier {
                           id: "ylen",
                           span: Span {
                            start: Position {
                             line: 1043,
                             column: 23,
                            },
                            end: Position {
                             line: 1043,
                             column: 27,
                            },
                           },
                          },
                         ),
                        },
                       ),
                      },
                     ),
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "xinfix",
                          span: Span {
                           start: Position {
                            line: 1046,
                            column: 9,
                           },
                           end: Position {
                            line: 1046,
                            column: 15,
                           },
                          },
                         },
                        ),
                       ],
                       to: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "substring",
                           span: Span {
                            start: Position {
                             line: 1046,
                             column: 18,
                            },
                            end: Position {
                             line: 1046,
                             column: 27,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Integer(
                           Integer {
                            value: "1",
                            span: Span {
                             start: Position {
                              line: 1046,
                              column: 28,
                             },
                             end: Position {
                              line: 1046,
                              column: 29,
                             },
                            },
                           },
                          ),
                          BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "xlen",
                              span: Span {
                               start: Position {
                                line: 1046,
                                column: 31,
                               },
                               end: Position {
                                line: 1046,
                                column: 35,
                               },
                              },
                             },
                            ),
                            operator: Subtraction,
                            right: Integer(
                             Integer {
                              value: "2",
                              span: Span {
                               start: Position {
                                line: 1046,
                                column: 38,
                               },
                               end: Position {
                                line: 1046,
                                column: 39,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "x",
                            span: Span {
                             start: Position {
                              line: 1046,
                              column: 41,
                             },
                             end: Position {
                              line: 1046,
                              column: 42,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "yinfix",
                          span: Span {
                           start: Position {
                            line: 1047,
                            column: 9,
                           },
                           end: Position {
                            line: 1047,
                            column: 15,
                           },
                          },
                         },
                        ),
                       ],
                       to: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "substring",
                           span: Span {
                            start: Position {
                             line: 1047,
                             column: 18,
                            },
                            end: Position {
                             line: 1047,
                             column: 27,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Integer(
                           Integer {
                            value: "1",
                            span: Span {
                             start: Position {
                              line: 1047,
                              column: 28,
                             },
                             end: Position {
                              line: 1047,
                              column: 29,
                             },
                            },
                           },
                          ),
                          BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "ylen",
                              span: Span {
                               start: Position {
                                line: 1047,
                                column: 31,
                               },
                               end: Position {
                                line: 1047,
                                column: 35,
                               },
                              },
                             },
                            ),
                            operator: Subtraction,
                            right: Integer(
                             Integer {
                              value: "2",
                              span: Span {
                               start: Position {
                                line: 1047,
                                column: 38,
                               },
                               end: Position {
                                line: 1047,
                                column: 39,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "y",
                            span: Span {
                             start: Position {
                              line: 1047,
                              column: 41,
                             },
                             end: Position {
                              line: 1047,
                              column: 42,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "xdelr",
                          span: Span {
                           start: Position {
                            line: 1050,
                            column: 9,
                           },
                           end: Position {
                            line: 1050,
                            column: 14,
                           },
                          },
                         },
                        ),
                       ],
                       to: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "substring",
                           span: Span {
                            start: Position {
                             line: 1050,
                             column: 17,
                            },
                            end: Position {
                             line: 1050,
                             column: 26,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Integer(
                           Integer {
                            value: "0",
                            span: Span {
                             start: Position {
                              line: 1050,
                              column: 27,
                             },
                             end: Position {
                              line: 1050,
                              column: 28,
                             },
                            },
                           },
                          ),
                          BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "xlen",
                              span: Span {
                               start: Position {
                                line: 1050,
                                column: 30,
                               },
                               end: Position {
                                line: 1050,
                                column: 34,
                               },
                              },
                             },
                            ),
                            operator: Subtraction,
                            right: Integer(
                             Integer {
                              value: "1",
                              span: Span {
                               start: Position {
                                line: 1050,
                                column: 37,
                               },
                               end: Position {
                                line: 1050,
                                column: 38,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "x",
                            span: Span {
                             start: Position {
                              line: 1050,
                              column: 40,
                             },
                             end: Position {
                              line: 1050,
                              column: 41,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "xdell",
                          span: Span {
                           start: Position {
                            line: 1051,
                            column: 9,
                           },
                           end: Position {
                            line: 1051,
                            column: 14,
                           },
                          },
                         },
                        ),
                       ],
                       to: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "substring",
                           span: Span {
                            start: Position {
                             line: 1051,
                             column: 17,
                            },
                            end: Position {
                             line: 1051,
                             column: 26,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Integer(
                           Integer {
                            value: "1",
                            span: Span {
                             start: Position {
                              line: 1051,
                              column: 27,
                             },
                             end: Position {
                              line: 1051,
                              column: 28,
                             },
                            },
                           },
                          ),
                          BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "xlen",
                              span: Span {
                               start: Position {
                                line: 1051,
                                column: 30,
                               },
                               end: Position {
                                line: 1051,
                                column: 34,
                               },
                              },
                             },
                            ),
                            operator: Subtraction,
                            right: Integer(
                             Integer {
                              value: "1",
                              span: Span {
                               start: Position {
                                line: 1051,
                                column: 37,
                               },
                               end: Position {
                                line: 1051,
                                column: 38,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "x",
                            span: Span {
                             start: Position {
                              line: 1051,
                              column: 40,
                             },
                             end: Position {
                              line: 1051,
                              column: 41,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "ydelr",
                          span: Span {
                           start: Position {
                            line: 1052,
                            column: 9,
                           },
                           end: Position {
                            line: 1052,
                            column: 14,
                           },
                          },
                         },
                        ),
                       ],
                       to: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "substring",
                           span: Span {
                            start: Position {
                             line: 1052,
                             column: 17,
                            },
                            end: Position {
                             line: 1052,
                             column: 26,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Integer(
                           Integer {
                            value: "0",
                            span: Span {
                             start: Position {
                              line: 1052,
                              column: 27,
                             },
                             end: Position {
                              line: 1052,
                              column: 28,
                             },
                            },
                           },
                          ),
                          BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "ylen",
                              span: Span {
                               start: Position {
                                line: 1052,
                                column: 30,
                               },
                               end: Position {
                                line: 1052,
                                column: 34,
                               },
                              },
                             },
                            ),
                            operator: Subtraction,
                            right: Integer(
                             Integer {
                              value: "1",
                              span: Span {
                               start: Position {
                                line: 1052,
                                column: 37,
                               },
                               end: Position {
                                line: 1052,
                                column: 38,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "y",
                            span: Span {
                             start: Position {
                              line: 1052,
                              column: 40,
                             },
                             end: Position {
                              line: 1052,
                              column: 41,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                     KeyValue(
                      BindingKeyValue {
                       from: [
                        Raw(
                         PartRaw {
                          content: "ydell",
                          span: Span {
                           start: Position {
                            line: 1053,
                            column: 9,
                           },
                           end: Position {
                            line: 1053,
                            column: 14,
                           },
                          },
                         },
                        ),
                       ],
                       to: FunctionApplication(
                        FunctionApplication {
                         function: Identifier(
                          Identifier {
                           id: "substring",
                           span: Span {
                            start: Position {
                             line: 1053,
                             column: 17,
                            },
                            end: Position {
                             line: 1053,
                             column: 26,
                            },
                           },
                          },
                         ),
                         arguments: [
                          Integer(
                           Integer {
                            value: "1",
                            span: Span {
                             start: Position {
                              line: 1053,
                              column: 27,
                             },
                             end: Position {
                              line: 1053,
                              column: 28,
                             },
                            },
                           },
                          ),
                          BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "ylen",
                              span: Span {
                               start: Position {
                                line: 1053,
                                column: 30,
                               },
                               end: Position {
                                line: 1053,
                                column: 34,
                               },
                              },
                             },
                            ),
                            operator: Subtraction,
                            right: Integer(
                             Integer {
                              value: "1",
                              span: Span {
                               start: Position {
                                line: 1053,
                                column: 37,
                               },
                               end: Position {
                                line: 1053,
                                column: 38,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          Identifier(
                           Identifier {
                            id: "y",
                            span: Span {
                             start: Position {
                              line: 1053,
                              column: 40,
                             },
                             end: Position {
                              line: 1053,
                              column: 41,
                             },
                            },
                           },
                          ),
                         ],
                        },
                       ),
                      },
                     ),
                    ],
                    target: IfThenElse(
                     IfThenElse {
                      predicate: BinaryOperation(
                       BinaryOperation {
                        left: Identifier(
                         Identifier {
                          id: "diff",
                          span: Span {
                           start: Position {
                            line: 1058,
                            column: 12,
                           },
                           end: Position {
                            line: 1058,
                            column: 16,
                           },
                          },
                         },
                        ),
                        operator: EqualTo,
                        right: Integer(
                         Integer {
                          value: "2",
                          span: Span {
                           start: Position {
                            line: 1058,
                            column: 20,
                           },
                           end: Position {
                            line: 1058,
                            column: 21,
                           },
                          },
                         },
                        ),
                       },
                      ),
                      then: BinaryOperation(
                       BinaryOperation {
                        left: Identifier(
                         Identifier {
                          id: "xinfix",
                          span: Span {
                           start: Position {
                            line: 1058,
                            column: 27,
                           },
                           end: Position {
                            line: 1058,
                            column: 33,
                           },
                          },
                         },
                        ),
                        operator: EqualTo,
                        right: Identifier(
                         Identifier {
                          id: "y",
                          span: Span {
                           start: Position {
                            line: 1058,
                            column: 37,
                           },
                           end: Position {
                            line: 1058,
                            column: 38,
                           },
                          },
                         },
                        ),
                       },
                      ),
                      else_: IfThenElse(
                       IfThenElse {
                        predicate: BinaryOperation(
                         BinaryOperation {
                          left: Identifier(
                           Identifier {
                            id: "diff",
                            span: Span {
                             start: Position {
                              line: 1062,
                              column: 17,
                             },
                             end: Position {
                              line: 1062,
                              column: 21,
                             },
                            },
                           },
                          ),
                          operator: EqualTo,
                          right: Integer(
                           Integer {
                            value: "1",
                            span: Span {
                             start: Position {
                              line: 1062,
                              column: 25,
                             },
                             end: Position {
                              line: 1062,
                              column: 26,
                             },
                            },
                           },
                          ),
                         },
                        ),
                        then: BinaryOperation(
                         BinaryOperation {
                          left: BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "xinfix",
                              span: Span {
                               start: Position {
                                line: 1062,
                                column: 32,
                               },
                               end: Position {
                                line: 1062,
                                column: 38,
                               },
                              },
                             },
                            ),
                            operator: EqualTo,
                            right: Identifier(
                             Identifier {
                              id: "ydelr",
                              span: Span {
                               start: Position {
                                line: 1062,
                                column: 42,
                               },
                               end: Position {
                                line: 1062,
                                column: 47,
                               },
                              },
                             },
                            ),
                           },
                          ),
                          operator: LogicalOr,
                          right: BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "xinfix",
                              span: Span {
                               start: Position {
                                line: 1062,
                                column: 51,
                               },
                               end: Position {
                                line: 1062,
                                column: 57,
                               },
                              },
                             },
                            ),
                            operator: EqualTo,
                            right: Identifier(
                             Identifier {
                              id: "ydell",
                              span: Span {
                               start: Position {
                                line: 1062,
                                column: 61,
                               },
                               end: Position {
                                line: 1062,
                                column: 66,
                               },
                              },
                             },
                            ),
                           },
                          ),
                         },
                        ),
                        else_: BinaryOperation(
                         BinaryOperation {
                          left: BinaryOperation(
                           BinaryOperation {
                            left: BinaryOperation(
                             BinaryOperation {
                              left: Identifier(
                               Identifier {
                                id: "xinfix",
                                span: Span {
                                 start: Position {
                                  line: 1067,
                                  column: 14,
                                 },
                                 end: Position {
                                  line: 1067,
                                  column: 20,
                                 },
                                },
                               },
                              ),
                              operator: EqualTo,
                              right: Identifier(
                               Identifier {
                                id: "yinfix",
                                span: Span {
                                 start: Position {
                                  line: 1067,
                                  column: 24,
                                 },
                                 end: Position {
                                  line: 1067,
                                  column: 30,
                                 },
                                },
                               },
                              ),
                             },
                            ),
                            operator: LogicalOr,
                            right: BinaryOperation(
                             BinaryOperation {
                              left: Identifier(
                               Identifier {
                                id: "xdelr",
                                span: Span {
                                 start: Position {
                                  line: 1067,
                                  column: 34,
                                 },
                                 end: Position {
                                  line: 1067,
                                  column: 39,
                                 },
                                },
                               },
                              ),
                              operator: EqualTo,
                              right: Identifier(
                               Identifier {
                                id: "ydell",
                                span: Span {
                                 start: Position {
                                  line: 1067,
                                  column: 43,
                                 },
                                 end: Position {
                                  line: 1067,
                                  column: 48,
                                 },
                                },
                               },
                              ),
                             },
                            ),
                           },
                          ),
                          operator: LogicalOr,
                          right: BinaryOperation(
                           BinaryOperation {
                            left: Identifier(
                             Identifier {
                              id: "xdell",
                              span: Span {
                               start: Position {
                                line: 1067,
                                column: 52,
                               },
                               end: Position {
                                line: 1067,
                                column: 57,
                               },
                              },
                             },
                            ),
                            operator: EqualTo,
                            right: Identifier(
                             Identifier {
                              id: "ydelr",
                              span: Span {
                               start: Position {
                                line: 1067,
                                column: 61,
                               },
                               end: Position {
                                line: 1067,
                                column: 66,
                               },
                              },
                             },
                            ),
                           },
                          ),
                         },
                        ),
                        span: Span {
                         start: Position {
                          line: 1062,
                          column: 14,
                         },
                         end: Position {
                          line: 1067,
                          column: 66,
                         },
                        },
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 1058,
                        column: 9,
                       },
                       end: Position {
                        line: 1067,
                        column: 66,
                       },
                      },
                     },
                    ),
                    span: Span {
                     start: Position {
                      line: 1038,
                      column: 7,
                     },
                     end: Position {
                      line: 1067,
                      column: 66,
                     },
                    },
                   },
                  ),
                  span: Span {
                   start: Position {
                    line: 1037,
                    column: 29,
                   },
                   end: Position {
                    line: 1067,
                    column: 66,
                   },
                  },
                 },
                ),
                span: Span {
                 start: Position {
                  line: 1037,
                  column: 26,
                 },
                 end: Position {
                  line: 1067,
                  column: 66,
                 },
                },
               },
              ),
             },
            ),
           ],
           target: Function(
            Function {
             head: Simple(
              FunctionHeadSimple {
               identifier: "k",
              },
             ),
             body: IfThenElse(
              IfThenElse {
               predicate: BinaryOperation(
                BinaryOperation {
                 left: Identifier(
                  Identifier {
                   id: "k",
                   span: Span {
                    start: Position {
                     line: 1069,
                     column: 14,
                    },
                    end: Position {
                     line: 1069,
                     column: 15,
                    },
                   },
                  },
                 ),
                 operator: LessThanOrEqualTo,
                 right: Integer(
                  Integer {
                   value: "0",
                   span: Span {
                    start: Position {
                     line: 1069,
                     column: 19,
                    },
                    end: Position {
                     line: 1069,
                     column: 20,
                    },
                   },
                  },
                 ),
                },
               ),
               then: Function(
                Function {
                 head: Simple(
                  FunctionHeadSimple {
                   identifier: "a",
                  },
                 ),
                 body: Function(
                  Function {
                   head: Simple(
                    FunctionHeadSimple {
                     identifier: "b",
                    },
                   ),
                   body: BinaryOperation(
                    BinaryOperation {
                     left: Identifier(
                      Identifier {
                       id: "a",
                       span: Span {
                        start: Position {
                         line: 1069,
                         column: 32,
                        },
                        end: Position {
                         line: 1069,
                         column: 33,
                        },
                       },
                      },
                     ),
                     operator: EqualTo,
                     right: Identifier(
                      Identifier {
                       id: "b",
                       span: Span {
                        start: Position {
                         line: 1069,
                         column: 37,
                        },
                        end: Position {
                         line: 1069,
                         column: 38,
                        },
                       },
                      },
                     ),
                    },
                   ),
                   span: Span {
                    start: Position {
                     line: 1069,
                     column: 29,
                    },
                    end: Position {
                     line: 1069,
                     column: 38,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 1069,
                   column: 26,
                  },
                  end: Position {
                   line: 1069,
                   column: 38,
                  },
                 },
                },
               ),
               else_: LetIn(
                LetIn {
                 bindings: [
                  KeyValue(
                   BindingKeyValue {
                    from: [
                     Raw(
                      PartRaw {
                       content: "f",
                       span: Span {
                        start: Position {
                         line: 1070,
                         column: 11,
                        },
                        end: Position {
                         line: 1070,
                         column: 12,
                        },
                       },
                      },
                     ),
                    ],
                    to: Function(
                     Function {
                      head: Simple(
                       FunctionHeadSimple {
                        identifier: "a",
                       },
                      ),
                      body: Function(
                       Function {
                        head: Simple(
                         FunctionHeadSimple {
                          identifier: "b",
                         },
                        ),
                        body: LetIn(
                         LetIn {
                          bindings: [
                           KeyValue(
                            BindingKeyValue {
                             from: [
                              Raw(
                               PartRaw {
                                content: "alen",
                                span: Span {
                                 start: Position {
                                  line: 1072,
                                  column: 11,
                                 },
                                 end: Position {
                                  line: 1072,
                                  column: 15,
                                 },
                                },
                               },
                              ),
                             ],
                             to: FunctionApplication(
                              FunctionApplication {
                               function: Identifier(
                                Identifier {
                                 id: "stringLength",
                                 span: Span {
                                  start: Position {
                                   line: 1072,
                                   column: 18,
                                  },
                                  end: Position {
                                   line: 1072,
                                   column: 30,
                                  },
                                 },
                                },
                               ),
                               arguments: [
                                Identifier(
                                 Identifier {
                                  id: "a",
                                  span: Span {
                                   start: Position {
                                    line: 1072,
                                    column: 31,
                                   },
                                   end: Position {
                                    line: 1072,
                                    column: 32,
                                   },
                                  },
                                 },
                                ),
                               ],
                              },
                             ),
                            },
                           ),
                           KeyValue(
                            BindingKeyValue {
                             from: [
                              Raw(
                               PartRaw {
                                content: "blen",
                                span: Span {
                                 start: Position {
                                  line: 1073,
                                  column: 11,
                                 },
                                 end: Position {
                                  line: 1073,
                                  column: 15,
                                 },
                                },
                               },
                              ),
                             ],
                             to: FunctionApplication(
                              FunctionApplication {
                               function: Identifier(
                                Identifier {
                                 id: "stringLength",
                                 span: Span {
                                  start: Position {
                                   line: 1073,
                                   column: 18,
                                  },
                                  end: Position {
                                   line: 1073,
                                   column: 30,
                                  },
                                 },
                                },
                               ),
                               arguments: [
                                Identifier(
                                 Identifier {
                                  id: "b",
                                  span: Span {
                                   start: Position {
                                    line: 1073,
                                    column: 31,
                                   },
                                   end: Position {
                                    line: 1073,
                                    column: 32,
                                   },
                                  },
                                 },
                                ),
                               ],
                              },
                             ),
                            },
                           ),
                           KeyValue(
                            BindingKeyValue {
                             from: [
                              Raw(
                               PartRaw {
                                content: "prelen",
                                span: Span {
                                 start: Position {
                                  line: 1074,
                                  column: 11,
                                 },
                                 end: Position {
                                  line: 1074,
                                  column: 17,
                                 },
                                },
                               },
                              ),
                             ],
                             to: FunctionApplication(
                              FunctionApplication {
                               function: Identifier(
                                Identifier {
                                 id: "commonPrefixLength",
                                 span: Span {
                                  start: Position {
                                   line: 1074,
                                   column: 20,
                                  },
                                  end: Position {
                                   line: 1074,
                                   column: 38,
                                  },
                                 },
                                },
                               ),
                               arguments: [
                                Identifier(
                                 Identifier {
                                  id: "a",
                                  span: Span {
                                   start: Position {
                                    line: 1074,
                                    column: 39,
                                   },
                                   end: Position {
                                    line: 1074,
                                    column: 40,
                                   },
                                  },
                                 },
                                ),
                                Identifier(
                                 Identifier {
                                  id: "b",
                                  span: Span {
                                   start: Position {
                                    line: 1074,
                                    column: 41,
                                   },
                                   end: Position {
                                    line: 1074,
                                    column: 42,
                                   },
                                  },
                                 },
                                ),
                               ],
                              },
                             ),
                            },
                           ),
                           KeyValue(
                            BindingKeyValue {
                             from: [
                              Raw(
                               PartRaw {
                                content: "suflen",
                                span: Span {
                                 start: Position {
                                  line: 1075,
                                  column: 11,
                                 },
                                 end: Position {
                                  line: 1075,
                                  column: 17,
                                 },
                                },
                               },
                              ),
                             ],
                             to: FunctionApplication(
                              FunctionApplication {
                               function: Identifier(
                                Identifier {
                                 id: "commonSuffixLength",
                                 span: Span {
                                  start: Position {
                                   line: 1075,
                                   column: 20,
                                  },
                                  end: Position {
                                   line: 1075,
                                   column: 38,
                                  },
                                 },
                                },
                               ),
                               arguments: [
                                Identifier(
                                 Identifier {
                                  id: "a",
                                  span: Span {
                                   start: Position {
                                    line: 1075,
                                    column: 39,
                                   },
                                   end: Position {
                                    line: 1075,
                                    column: 40,
                                   },
                                  },
                                 },
                                ),
                                Identifier(
                                 Identifier {
                                  id: "b",
                                  span: Span {
                                   start: Position {
                                    line: 1075,
                                    column: 41,
                                   },
                                   end: Position {
                                    line: 1075,
                                    column: 42,
                                   },
                                  },
                                 },
                                ),
                               ],
                              },
                             ),
                            },
                           ),
                           KeyValue(
                            BindingKeyValue {
                             from: [
                              Raw(
                               PartRaw {
                                content: "presuflen",
                                span: Span {
                                 start: Position {
                                  line: 1076,
                                  column: 11,
                                 },
                                 end: Position {
                                  line: 1076,
                                  column: 20,
                                 },
                                },
                               },
                              ),
                             ],
                             to: BinaryOperation(
                              BinaryOperation {
                               left: Identifier(
                                Identifier {
                                 id: "prelen",
                                 span: Span {
                                  start: Position {
                                   line: 1076,
                                   column: 23,
                                  },
                                  end: Position {
                                   line: 1076,
                                   column: 29,
                                  },
                                 },
                                },
                               ),
                               operator: Addition,
                               right: Identifier(
                                Identifier {
                                 id: "suflen",
                                 span: Span {
                                  start: Position {
                                   line: 1076,
                                   column: 32,
                                  },
                                  end: Position {
                                   line: 1076,
                                   column: 38,
                                  },
                                 },
                                },
                               ),
                              },
                             ),
                            },
                           ),
                           KeyValue(
                            BindingKeyValue {
                             from: [
                              Raw(
                               PartRaw {
                                content: "ainfix",
                                span: Span {
                                 start: Position {
                                  line: 1077,
                                  column: 11,
                                 },
                                 end: Position {
                                  line: 1077,
                                  column: 17,
                                 },
                                },
                               },
                              ),
                             ],
                             to: FunctionApplication(
                              FunctionApplication {
                               function: Identifier(
                                Identifier {
                                 id: "substring",
                                 span: Span {
                                  start: Position {
                                   line: 1077,
                                   column: 20,
                                  },
                                  end: Position {
                                   line: 1077,
                                   column: 29,
                                  },
                                 },
                                },
                               ),
                               arguments: [
                                Identifier(
                                 Identifier {
                                  id: "prelen",
                                  span: Span {
                                   start: Position {
                                    line: 1077,
                                    column: 30,
                                   },
                                   end: Position {
                                    line: 1077,
                                    column: 36,
                                   },
                                  },
                                 },
                                ),
                                BinaryOperation(
                                 BinaryOperation {
                                  left: Identifier(
                                   Identifier {
                                    id: "alen",
                                    span: Span {
                                     start: Position {
                                      line: 1077,
                                      column: 38,
                                     },
                                     end: Position {
                                      line: 1077,
                                      column: 42,
                                     },
                                    },
                                   },
                                  ),
                                  operator: Subtraction,
                                  right: Identifier(
                                   Identifier {
                                    id: "presuflen",
                                    span: Span {
                                     start: Position {
                                      line: 1077,
                                      column: 45,
                                     },
                                     end: Position {
                                      line: 1077,
                                      column: 54,
                                     },
                                    },
                                   },
                                  ),
                                 },
                                ),
                                Identifier(
                                 Identifier {
                                  id: "a",
                                  span: Span {
                                   start: Position {
                                    line: 1077,
                                    column: 56,
                                   },
                                   end: Position {
                                    line: 1077,
                                    column: 57,
                                   },
                                  },
                                 },
                                ),
                               ],
                              },
                             ),
                            },
                           ),
                           KeyValue(
                            BindingKeyValue {
                             from: [
                              Raw(
                               PartRaw {
                                content: "binfix",
                                span: Span {
                                 start: Position {
                                  line: 1078,
                                  column: 11,
                                 },
                                 end: Position {
                                  line: 1078,
                                  column: 17,
                                 },
                                },
                               },
                              ),
                             ],
                             to: FunctionApplication(
                              FunctionApplication {
                               function: Identifier(
                                Identifier {
                                 id: "substring",
                                 span: Span {
                                  start: Position {
                                   line: 1078,
                                   column: 20,
                                  },
                                  end: Position {
                                   line: 1078,
                                   column: 29,
                                  },
                                 },
                                },
                               ),
                               arguments: [
                                Identifier(
                                 Identifier {
                                  id: "prelen",
                                  span: Span {
                                   start: Position {
                                    line: 1078,
                                    column: 30,
                                   },
                                   end: Position {
                                    line: 1078,
                                    column: 36,
                                   },
                                  },
                                 },
                                ),
                                BinaryOperation(
                                 BinaryOperation {
                                  left: Identifier(
                                   Identifier {
                                    id: "blen",
                                    span: Span {
                                     start: Position {
                                      line: 1078,
                                      column: 38,
                                     },
                                     end: Position {
                                      line: 1078,
                                      column: 42,
                                     },
                                    },
                                   },
                                  ),
                                  operator: Subtraction,
                                  right: Identifier(
                                   Identifier {
                                    id: "presuflen",
                                    span: Span {
                                     start: Position {
                                      line: 1078,
                                      column: 45,
                                     },
                                     end: Position {
                                      line: 1078,
                                      column: 54,
                                     },
                                    },
                                   },
                                  ),
                                 },
                                ),
                                Identifier(
                                 Identifier {
                                  id: "b",
                                  span: Span {
                                   start: Position {
                                    line: 1078,
                                    column: 56,
                                   },
                                   end: Position {
                                    line: 1078,
                                    column: 57,
                                   },
                                  },
                                 },
                                ),
                               ],
                              },
                             ),
                            },
                           ),
                          ],
                          target: IfThenElse(
                           IfThenElse {
                            predicate: BinaryOperation(
                             BinaryOperation {
                              left: Identifier(
                               Identifier {
                                id: "alen",
                                span: Span {
                                 start: Position {
                                  line: 1081,
                                  column: 12,
                                 },
                                 end: Position {
                                  line: 1081,
                                  column: 16,
                                 },
                                },
                               },
                              ),
                              operator: LessThan,
                              right: Identifier(
                               Identifier {
                                id: "blen",
                                span: Span {
                                 start: Position {
                                  line: 1081,
                                  column: 19,
                                 },
                                 end: Position {
                                  line: 1081,
                                  column: 23,
                                 },
                                },
                               },
                              ),
                             },
                            ),
                            then: FunctionApplication(
                             FunctionApplication {
                              function: Identifier(
                               Identifier {
                                id: "f",
                                span: Span {
                                 start: Position {
                                  line: 1081,
                                  column: 29,
                                 },
                                 end: Position {
                                  line: 1081,
                                  column: 30,
                                 },
                                },
                               },
                              ),
                              arguments: [
                               Identifier(
                                Identifier {
                                 id: "b",
                                 span: Span {
                                  start: Position {
                                   line: 1081,
                                   column: 31,
                                  },
                                  end: Position {
                                   line: 1081,
                                   column: 32,
                                  },
                                 },
                                },
                               ),
                               Identifier(
                                Identifier {
                                 id: "a",
                                 span: Span {
                                  start: Position {
                                   line: 1081,
                                   column: 33,
                                  },
                                  end: Position {
                                   line: 1081,
                                   column: 34,
                                  },
                                 },
                                },
                               ),
                              ],
                             },
                            ),
                            else_: IfThenElse(
                             IfThenElse {
                              predicate: BinaryOperation(
                               BinaryOperation {
                                left: BinaryOperation(
                                 BinaryOperation {
                                  left: Identifier(
                                   Identifier {
                                    id: "alen",
                                    span: Span {
                                     start: Position {
                                      line: 1083,
                                      column: 17,
                                     },
                                     end: Position {
                                      line: 1083,
                                      column: 21,
                                     },
                                    },
                                   },
                                  ),
                                  operator: Subtraction,
                                  right: Identifier(
                                   Identifier {
                                    id: "blen",
                                    span: Span {
                                     start: Position {
                                      line: 1083,
                                      column: 24,
                                     },
                                     end: Position {
                                      line: 1083,
                                      column: 28,
                                     },
                                    },
                                   },
                                  ),
                                 },
                                ),
                                operator: GreaterThan,
                                right: Identifier(
                                 Identifier {
                                  id: "k",
                                  span: Span {
                                   start: Position {
                                    line: 1083,
                                    column: 31,
                                   },
                                   end: Position {
                                    line: 1083,
                                    column: 32,
                                   },
                                  },
                                 },
                                ),
                               },
                              ),
                              then: Identifier(
                               Identifier {
                                id: "false",
                                span: Span {
                                 start: Position {
                                  line: 1083,
                                  column: 38,
                                 },
                                 end: Position {
                                  line: 1083,
                                  column: 43,
                                 },
                                },
                               },
                              ),
                              else_: IfThenElse(
                               IfThenElse {
                                predicate: BinaryOperation(
                                 BinaryOperation {
                                  left: Identifier(
                                   Identifier {
                                    id: "k",
                                    span: Span {
                                     start: Position {
                                      line: 1084,
                                      column: 17,
                                     },
                                     end: Position {
                                      line: 1084,
                                      column: 18,
                                     },
                                    },
                                   },
                                  ),
                                  operator: EqualTo,
                                  right: Integer(
                                   Integer {
                                    value: "1",
                                    span: Span {
                                     start: Position {
                                      line: 1084,
                                      column: 22,
                                     },
                                     end: Position {
                                      line: 1084,
                                      column: 23,
                                     },
                                    },
                                   },
                                  ),
                                 },
                                ),
                                then: FunctionApplication(
                                 FunctionApplication {
                                  function: Identifier(
                                   Identifier {
                                    id: "infixDifferAtMost1",
                                    span: Span {
                                     start: Position {
                                      line: 1084,
                                      column: 29,
                                     },
                                     end: Position {
                                      line: 1084,
                                      column: 47,
                                     },
                                    },
                                   },
                                  ),
                                  arguments: [
                                   Identifier(
                                    Identifier {
                                     id: "ainfix",
                                     span: Span {
                                      start: Position {
                                       line: 1084,
                                       column: 48,
                                      },
                                      end: Position {
                                       line: 1084,
                                       column: 54,
                                      },
                                     },
                                    },
                                   ),
                                   Identifier(
                                    Identifier {
                                     id: "binfix",
                                     span: Span {
                                      start: Position {
                                       line: 1084,
                                       column: 55,
                                      },
                                      end: Position {
                                       line: 1084,
                                       column: 61,
                                      },
                                     },
                                    },
                                   ),
                                  ],
                                 },
                                ),
                                else_: IfThenElse(
                                 IfThenElse {
                                  predicate: BinaryOperation(
                                   BinaryOperation {
                                    left: Identifier(
                                     Identifier {
                                      id: "k",
                                      span: Span {
                                       start: Position {
                                        line: 1085,
                                        column: 17,
                                       },
                                       end: Position {
                                        line: 1085,
                                        column: 18,
                                       },
                                      },
                                     },
                                    ),
                                    operator: EqualTo,
                                    right: Integer(
                                     Integer {
                                      value: "2",
                                      span: Span {
                                       start: Position {
                                        line: 1085,
                                        column: 22,
                                       },
                                       end: Position {
                                        line: 1085,
                                        column: 23,
                                       },
                                      },
                                     },
                                    ),
                                   },
                                  ),
                                  then: FunctionApplication(
                                   FunctionApplication {
                                    function: Identifier(
                                     Identifier {
                                      id: "infixDifferAtMost2",
                                      span: Span {
                                       start: Position {
                                        line: 1085,
                                        column: 29,
                                       },
                                       end: Position {
                                        line: 1085,
                                        column: 47,
                                       },
                                      },
                                     },
                                    ),
                                    arguments: [
                                     Identifier(
                                      Identifier {
                                       id: "ainfix",
                                       span: Span {
                                        start: Position {
                                         line: 1085,
                                         column: 48,
                                        },
                                        end: Position {
                                         line: 1085,
                                         column: 54,
                                        },
                                       },
                                      },
                                     ),
                                     Identifier(
                                      Identifier {
                                       id: "binfix",
                                       span: Span {
                                        start: Position {
                                         line: 1085,
                                         column: 55,
                                        },
                                        end: Position {
                                         line: 1085,
                                         column: 61,
                                        },
                                       },
                                      },
                                     ),
                                    ],
                                   },
                                  ),
                                  else_: BinaryOperation(
                                   BinaryOperation {
                                    left: FunctionApplication(
                                     FunctionApplication {
                                      function: Identifier(
                                       Identifier {
                                        id: "levenshtein",
                                        span: Span {
                                         start: Position {
                                          line: 1086,
                                          column: 14,
                                         },
                                         end: Position {
                                          line: 1086,
                                          column: 25,
                                         },
                                        },
                                       },
                                      ),
                                      arguments: [
                                       Identifier(
                                        Identifier {
                                         id: "ainfix",
                                         span: Span {
                                          start: Position {
                                           line: 1086,
                                           column: 26,
                                          },
                                          end: Position {
                                           line: 1086,
                                           column: 32,
                                          },
                                         },
                                        },
                                       ),
                                       Identifier(
                                        Identifier {
                                         id: "binfix",
                                         span: Span {
                                          start: Position {
                                           line: 1086,
                                           column: 33,
                                          },
                                          end: Position {
                                           line: 1086,
                                           column: 39,
                                          },
                                         },
                                        },
                                       ),
                                      ],
                                     },
                                    ),
                                    operator: LessThanOrEqualTo,
                                    right: Identifier(
                                     Identifier {
                                      id: "k",
                                      span: Span {
                                       start: Position {
                                        line: 1086,
                                        column: 43,
                                       },
                                       end: Position {
                                        line: 1086,
                                        column: 44,
                                       },
                                      },
                                     },
                                    ),
                                   },
                                  ),
                                  span: Span {
                                   start: Position {
                                    line: 1085,
                                    column: 14,
                                   },
                                   end: Position {
                                    line: 1086,
                                    column: 44,
                                   },
                                  },
                                 },
                                ),
                                span: Span {
                                 start: Position {
                                  line: 1084,
                                  column: 14,
                                 },
                                 end: Position {
                                  line: 1086,
                                  column: 44,
                                 },
                                },
                               },
                              ),
                              span: Span {
                               start: Position {
                                line: 1083,
                                column: 14,
                               },
                               end: Position {
                                line: 1086,
                                column: 44,
                               },
                              },
                             },
                            ),
                            span: Span {
                             start: Position {
                              line: 1081,
                              column: 9,
                             },
                             end: Position {
                              line: 1086,
                              column: 44,
                             },
                            },
                           },
                          ),
                          span: Span {
                           start: Position {
                            line: 1071,
                            column: 9,
                           },
                           end: Position {
                            line: 1086,
                            column: 44,
                           },
                          },
                         },
                        ),
                        span: Span {
                         start: Position {
                          line: 1070,
                          column: 18,
                         },
                         end: Position {
                          line: 1086,
                          column: 44,
                         },
                        },
                       },
                      ),
                      span: Span {
                       start: Position {
                        line: 1070,
                        column: 15,
                       },
                       end: Position {
                        line: 1086,
                        column: 44,
                       },
                      },
                     },
                    ),
                   },
                  ),
                 ],
                 target: Identifier(
                  Identifier {
                   id: "f",
                   span: Span {
                    start: Position {
                     line: 1087,
                     column: 10,
                    },
                    end: Position {
                     line: 1087,
                     column: 11,
                    },
                   },
                  },
                 ),
                 span: Span {
                  start: Position {
                   line: 1070,
                   column: 7,
                  },
                  end: Position {
                   line: 1087,
                   column: 11,
                  },
                 },
                },
               ),
               span: Span {
                start: Position {
                 line: 1069,
                 column: 11,
                },
                end: Position {
                 line: 1087,
                 column: 11,
                },
               },
              },
             ),
             span: Span {
              start: Position {
               line: 1069,
               column: 8,
              },
              end: Position {
               line: 1087,
               column: 11,
              },
             },
            },
           ),
           span: Span {
            start: Position {
             line: 1028,
             column: 23,
            },
            end: Position {
             line: 1087,
             column: 11,
            },
           },
          },
         ),
        },
       ),
      ],
      span: Span {
       start: Position {
        line: 9,
        column: 1,
       },
       end: Position {
        line: 1088,
        column: 2,
       },
      },
     },
    ),
    span: Span {
     start: Position {
      line: 3,
      column: 1,
     },
     end: Position {
      line: 1088,
      column: 2,
     },
    },
   },
  ),
  span: Span {
   start: Position {
    line: 2,
    column: 1,
   },
   end: Position {
    line: 1088,
    column: 2,
   },
  },
 },
)