lib/StringCvt-struct.ss
(module StringCvt-struct (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: StringCvt-sig)
       (SIGSigExp:
        (SEQSpec:
         (DATATYPESpec: (DatDesc: (TyVarseq:) (TyCon: radix-type) (ConDesc: (VId: BIN) (ConDesc: (VId: OCT) (ConDesc: (VId: DEC) (ConDesc: (VId: HEX)))))))
         (SEQSpec:
          (DATATYPESpec:
           (DatDesc:
            (TyVarseq:)
            (TyCon: realfmt-type)
            (ConDesc:
             (VId: SCI)
             (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: int-type))) (LongTyCon: option-type))
             (ConDesc:
              (VId: FIX)
              (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: int-type))) (LongTyCon: option-type))
              (ConDesc: (VId: GEN) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: int-type))) (LongTyCon: option-type)))))))
          (SEQSpec:
           (TYPESpec: (TypDec: (TyVarseq:) (TyCon: cs-type)))
           (SEQSpec:
            (SEQSpec:
             (INCLUDESpec:
              (WHERETYPESigExp:
               (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq: (TyVar: |'a|) (TyVar: |'b|)) (TyCon: reader-type))))
               (TyVarseq: (TyVar: |'a|) (TyVar: |'b|))
               (LongTyCon: reader-type)
               (ARROWTy:
                (VARTy: (TyVar: |'b|))
                (CONTy:
                 (Tyseq: (PARTy: (RECORDTy: (TyRow: (Lab: |1|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'b|)))))))
                 (LongTyCon: option-type)))))
             (EMPTYSpec:))
            (SEQSpec:
             (VALSpec:
              (ValDesc:
               (VId: scanString)
               (ARROWTy:
                (PARTy:
                 (ARROWTy:
                  (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: cs-type))) (LongTyCon: reader-type))
                  (CONTy: (Tyseq: (VARTy: (TyVar: |'a|)) (CONTy: (Tyseq:) (LongTyCon: cs-type))) (LongTyCon: reader-type))))
                (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: option-type))))))
             (SEQSpec:
              (VALSpec:
               (ValDesc:
                (VId: splitl)
                (ARROWTy:
                 (PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
                 (ARROWTy:
                  (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: char-type)) (VARTy: (TyVar: |'a|))) (LongTyCon: reader-type))
                  (ARROWTy:
                   (VARTy: (TyVar: |'a|))
                   (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: string-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|))))))))))
              (SEQSpec:
               (VALSpec:
                (ValDesc:
                 (VId: takel)
                 (ARROWTy:
                  (PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
                  (ARROWTy:
                   (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: char-type)) (VARTy: (TyVar: |'a|))) (LongTyCon: reader-type))
                   (ARROWTy: (VARTy: (TyVar: |'a|)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))))
               (SEQSpec:
                (VALSpec:
                 (ValDesc:
                  (VId: dropl)
                  (ARROWTy:
                   (PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
                   (ARROWTy:
                    (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: char-type)) (VARTy: (TyVar: |'a|))) (LongTyCon: reader-type))
                    (ARROWTy: (VARTy: (TyVar: |'a|)) (VARTy: (TyVar: |'a|)))))))
                (SEQSpec:
                 (VALSpec:
                  (ValDesc:
                   (VId: skipWS)
                   (ARROWTy:
                    (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: char-type)) (VARTy: (TyVar: |'a|))) (LongTyCon: reader-type))
                    (ARROWTy: (VARTy: (TyVar: |'a|)) (VARTy: (TyVar: |'a|))))))
                 (SEQSpec:
                  (VALSpec:
                   (ValDesc:
                    (VId: padLeft)
                    (ARROWTy:
                     (CONTy: (Tyseq:) (LongTyCon: char-type))
                     (ARROWTy:
                      (CONTy: (Tyseq:) (LongTyCon: int-type))
                      (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))))
                  (VALSpec:
                   (ValDesc:
                    (VId: padRight)
                    (ARROWTy:
                     (CONTy: (Tyseq:) (LongTyCon: char-type))
                     (ARROWTy:
                      (CONTy: (Tyseq:) (LongTyCon: int-type))
                      (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: string-type))))))))))))))))))))
     (STRDECTopDec:
      (STRUCTUREStrDec:
       (StrBind:
        (StrId: StringCvt-struct)
        (SEALStrExp:
         (STRUCTStrExp:
          (LOCALStrDec:
           (SEQStrDec:
            (DECStrDec: (OPENDec: (LongStrId: stringprimitive-struct)))
            (DECStrDec:
             (VALDec:
              (TyVarseq:)
              (RECValBind:
               (PLAINValBind:
                (ATPat: (IDAtPat: (LongVId: sub_string_)))
                (FNExp:
                 (Match:
                  (Mrule:
                   (ATPat: (IDAtPat: (LongVId: _id10542)))
                   (FNExp:
                    (Match:
                     (Mrule:
                      (ATPat: (IDAtPat: (LongVId: _id10543)))
                      (FNExp:
                       (Match:
                        (Mrule:
                         (ATPat: (IDAtPat: (LongVId: _id10544)))
                         (APPExp:
                          (ATExp:
                           (PARAtExp:
                            (FNExp:
                             (Match:
                              (Mrule:
                               (ATPat:
                                (RECORDAtPat:
                                 (FIELDPatRow:
                                  (Lab: |1|)
                                  (ATPat: (IDAtPat: (LongVId: s)))
                                  (FIELDPatRow:
                                   (Lab: |2|)
                                   (ATPat: (IDAtPat: (LongVId: start)))
                                   (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: len))))))))
                               (ATExp:
                                (LETAtExp:
                                 (VALDec:
                                  (TyVarseq:)
                                  (PLAINValBind:
                                   (ATPat: (IDAtPat: (LongVId: res)))
                                   (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: mkstring_))) (IDAtExp: (LongVId: len)))))))
                                 (ATExp:
                                  (PARAtExp:
                                   (APPExp:
                                    (ATExp: (PARAtExp: (FNExp: (Match: (Mrule: (ATPat: (WILDCARDAtPat:)) (ATExp: (IDAtExp: (LongVId: res))))))))
                                    (PARAtExp:
                                     (ATExp:
                                      (PARAtExp:
                                       (APPExp:
                                        (ATExp:
                                         (PARAtExp:
                                          (APPExp:
                                           (ATExp:
                                            (PARAtExp:
                                             (APPExp:
                                              (ATExp:
                                               (PARAtExp:
                                                (APPExp:
                                                 (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: blit_))) (IDAtExp: (LongVId: s)))))
                                                 (IDAtExp: (LongVId: start)))))
                                              (IDAtExp: (LongVId: res)))))
                                           (SCONAtExp: (INTSCon: 0)))))
                                        (IDAtExp: (LongVId: len))))))))))))))))
                          (PARAtExp:
                           (ATExp:
                            (RECORDAtExp:
                             (ExpRow:
                              (Lab: |1|)
                              (ATExp: (IDAtExp: (LongVId: _id10542)))
                              (ExpRow:
                               (Lab: |2|)
                               (ATExp: (IDAtExp: (LongVId: _id10543)))
                               (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: _id10544))))))))))))))))))))))))
           (SEQStrDec:
            (SEQStrDec:
             (SEQStrDec:
              (SEQStrDec:
               (SEQStrDec:
                (SEQStrDec:
                 (SEQStrDec:
                  (SEQStrDec:
                   (DECStrDec:
                    (DATATYPEDec:
                     (DatBind: (TyVarseq:) (TyCon: radix-type) (ConBind: (VId: BIN) (ConBind: (VId: OCT) (ConBind: (VId: DEC) (ConBind: (VId: HEX))))))))
                   (SEQStrDec:
                    (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
                    (SEQStrDec:
                     (DECStrDec:
                      (DATATYPEDec:
                       (DatBind:
                        (TyVarseq:)
                        (TyCon: realfmt-type)
                        (ConBind:
                         (VId: SCI)
                         (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: int-type))) (LongTyCon: option-type))
                         (ConBind:
                          (VId: FIX)
                          (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: int-type))) (LongTyCon: option-type))
                          (ConBind: (VId: GEN) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: int-type))) (LongTyCon: option-type))))))))
                     (SEQStrDec:
                      (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: cs-type) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
                      (SEQStrDec:
                       (DECStrDec:
                        (TYPEDec:
                         (TypBind:
                          (TyVarseq: (TyVar: |'a|) (TyVar: |'b|))
                          (TyCon: reader-type)
                          (ARROWTy:
                           (VARTy: (TyVar: |'b|))
                           (CONTy:
                            (Tyseq: (PARTy: (RECORDTy: (TyRow: (Lab: |1|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'b|)))))))
                            (LongTyCon: option-type))))))
                       (DECStrDec:
                        (VALDec:
                         (TyVarseq:)
                         (RECValBind:
                          (PLAINValBind:
                           (ATPat: (IDAtPat: (LongVId: scanString)))
                           (FNExp:
                            (Match:
                             (Mrule:
                              (ATPat: (IDAtPat: (LongVId: _id10546)))
                              (FNExp:
                               (Match:
                                (Mrule:
                                 (ATPat: (IDAtPat: (LongVId: _id10547)))
                                 (APPExp:
                                  (ATExp:
                                   (PARAtExp:
                                    (FNExp:
                                     (Match:
                                      (Mrule:
                                       (ATPat:
                                        (RECORDAtPat:
                                         (FIELDPatRow:
                                          (Lab: |1|)
                                          (ATPat: (IDAtPat: (LongVId: scan)))
                                          (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: s)))))))
                                       (ATExp:
                                        (LETAtExp:
                                         (SEQDec:
                                          (VALDec:
                                           (TyVarseq:)
                                           (PLAINValBind:
                                            (ATPat: (IDAtPat: (LongVId: len)))
                                            (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: s)))))))
                                          (VALDec:
                                           (TyVarseq:)
                                           (RECValBind:
                                            (PLAINValBind:
                                             (ATPat: (IDAtPat: (LongVId: getc)))
                                             (FNExp:
                                              (Match:
                                               (Mrule:
                                                (ATPat: (IDAtPat: (LongVId: _id10545)))
                                                (APPExp:
                                                 (ATExp:
                                                  (PARAtExp:
                                                   (FNExp:
                                                    (Match:
                                                     (Mrule:
                                                      (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: i)))))
                                                      (APPExp:
                                                       (ATExp:
                                                        (PARAtExp:
                                                         (FNExp:
                                                          (Match:
                                                           (Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: NONE))))
                                                           (Match:
                                                            (Mrule:
                                                             (ATPat: (IDAtPat: (LongVId: false)))
                                                             (ATExp:
                                                              (PARAtExp:
                                                               (APPExp:
                                                                (ATExp: (IDAtExp: (LongVId: SOME)))
                                                                (RECORDAtExp:
                                                                 (ExpRow:
                                                                  (Lab: |1|)
                                                                  (ATExp:
                                                                   (PARAtExp:
                                                                    (APPExp:
                                                                     (ATExp:
                                                                      (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s)))))
                                                                     (IDAtExp: (LongVId: i)))))
                                                                  (ExpRow:
                                                                   (Lab: |2|)
                                                                   (ATExp:
                                                                    (PARAtExp:
                                                                     (APPExp:
                                                                      (ATExp: (IDAtExp: (LongVId: +)))
                                                                      (RECORDAtExp:
                                                                       (ExpRow:
                                                                        (Lab: |1|)
                                                                        (ATExp: (IDAtExp: (LongVId: i)))
                                                                        (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))))))))))
                                                       (PARAtExp:
                                                        (ATExp:
                                                         (PARAtExp:
                                                          (APPExp:
                                                           (ATExp: (IDAtExp: (LongVId: >=)))
                                                           (RECORDAtExp:
                                                            (ExpRow:
                                                             (Lab: |1|)
                                                             (ATExp: (IDAtExp: (LongVId: i)))
                                                             (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: len))))))))))))))))
                                                 (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10545))))))))))))))
                                         (APPExp:
                                          (ATExp:
                                           (PARAtExp:
                                            (FNExp:
                                             (Match:
                                              (Mrule: (ATPat: (IDAtPat: (LongVId: NONE))) (ATExp: (IDAtExp: (LongVId: NONE))))
                                              (Match:
                                               (Mrule:
                                                (ATPat:
                                                 (PARAtPat:
                                                  (CONPat:
                                                   (LongVId: SOME)
                                                   (RECORDAtPat:
                                                    (FIELDPatRow:
                                                     (Lab: |1|)
                                                     (ATPat: (IDAtPat: (LongVId: res)))
                                                     (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:))))))))
                                                (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SOME))) (IDAtExp: (LongVId: res)))))))))))
                                          (PARAtExp:
                                           (ATExp:
                                            (PARAtExp:
                                             (APPExp:
                                              (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: scan))) (IDAtExp: (LongVId: getc)))))
                                              (SCONAtExp: (INTSCon: 0))))))))))))))
                                  (PARAtExp:
                                   (ATExp:
                                    (RECORDAtExp:
                                     (ExpRow:
                                      (Lab: |1|)
                                      (ATExp: (IDAtExp: (LongVId: _id10546)))
                                      (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10547))))))))))))))))))))))))
                  (SEQStrDec:
                   (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
                   (DECStrDec:
                    (VALDec:
                     (TyVarseq:)
                     (RECValBind:
                      (PLAINValBind:
                       (ATPat: (IDAtPat: (LongVId: dropl)))
                       (FNExp:
                        (Match:
                         (Mrule:
                          (ATPat: (IDAtPat: (LongVId: _id10549)))
                          (FNExp:
                           (Match:
                            (Mrule:
                             (ATPat: (IDAtPat: (LongVId: _id10550)))
                             (APPExp:
                              (ATExp:
                               (PARAtExp:
                                (FNExp:
                                 (Match:
                                  (Mrule:
                                   (ATPat:
                                    (RECORDAtPat:
                                     (FIELDPatRow:
                                      (Lab: |1|)
                                      (ATPat: (IDAtPat: (LongVId: p)))
                                      (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: getc)))))))
                                   (ATExp:
                                    (LETAtExp:
                                     (VALDec:
                                      (TyVarseq:)
                                      (RECValBind:
                                       (PLAINValBind:
                                        (ATPat: (IDAtPat: (LongVId: h)))
                                        (FNExp:
                                         (Match:
                                          (Mrule:
                                           (ATPat: (IDAtPat: (LongVId: _id10548)))
                                           (APPExp:
                                            (ATExp:
                                             (PARAtExp:
                                              (FNExp:
                                               (Match:
                                                (Mrule:
                                                 (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: src)))))
                                                 (APPExp:
                                                  (ATExp:
                                                   (PARAtExp:
                                                    (FNExp:
                                                     (Match:
                                                      (Mrule: (ATPat: (IDAtPat: (LongVId: NONE))) (ATExp: (IDAtExp: (LongVId: src))))
                                                      (Match:
                                                       (Mrule:
                                                        (ATPat:
                                                         (PARAtPat:
                                                          (CONPat:
                                                           (LongVId: SOME)
                                                           (RECORDAtPat:
                                                            (FIELDPatRow:
                                                             (Lab: |1|)
                                                             (ATPat: (IDAtPat: (LongVId: c)))
                                                             (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: rest)))))))))
                                                        (APPExp:
                                                         (ATExp:
                                                          (PARAtExp:
                                                           (FNExp:
                                                            (Match:
                                                             (Mrule:
                                                              (ATPat: (IDAtPat: (LongVId: true)))
                                                              (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: rest))))))
                                                             (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: src)))))))))
                                                         (PARAtExp:
                                                          (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: p))) (IDAtExp: (LongVId: c)))))))))))))
                                                  (PARAtExp:
                                                   (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: getc))) (IDAtExp: (LongVId: src))))))))))))
                                            (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10548)))))))))))))
                                     (ATExp: (IDAtExp: (LongVId: h))))))))))
                              (PARAtExp:
                               (ATExp:
                                (RECORDAtExp:
                                 (ExpRow:
                                  (Lab: |1|)
                                  (ATExp: (IDAtExp: (LongVId: _id10549)))
                                  (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10550)))))))))))))))))))))
                 (SEQStrDec:
                  (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
                  (DECStrDec:
                   (VALDec:
                    (TyVarseq:)
                    (RECValBind:
                     (PLAINValBind:
                      (ATPat: (IDAtPat: (LongVId: skipWS)))
                      (FNExp:
                       (Match:
                        (Mrule:
                         (ATPat: (IDAtPat: (LongVId: _id10552)))
                         (APPExp:
                          (ATExp:
                           (PARAtExp:
                            (FNExp:
                             (Match:
                              (Mrule:
                               (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: getc)))))
                               (ATExp:
                                (LETAtExp:
                                 (VALDec:
                                  (TyVarseq:)
                                  (RECValBind:
                                   (PLAINValBind:
                                    (ATPat: (IDAtPat: (LongVId: h)))
                                    (FNExp:
                                     (Match:
                                      (Mrule:
                                       (ATPat: (IDAtPat: (LongVId: _id10551)))
                                       (APPExp:
                                        (ATExp:
                                         (PARAtExp:
                                          (FNExp:
                                           (Match:
                                            (Mrule:
                                             (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: src)))))
                                             (APPExp:
                                              (ATExp:
                                               (PARAtExp:
                                                (FNExp:
                                                 (Match:
                                                  (Mrule: (ATPat: (IDAtPat: (LongVId: NONE))) (ATExp: (IDAtExp: (LongVId: src))))
                                                  (Match:
                                                   (Mrule:
                                                    (ATPat:
                                                     (PARAtPat:
                                                      (CONPat:
                                                       (LongVId: SOME)
                                                       (RECORDAtPat:
                                                        (FIELDPatRow:
                                                         (Lab: |1|)
                                                         (ATPat: (IDAtPat: (LongVId: c)))
                                                         (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: rest)))))))))
                                                    (APPExp:
                                                     (ATExp:
                                                      (PARAtExp:
                                                       (FNExp:
                                                        (Match:
                                                         (Mrule:
                                                          (ATPat: (IDAtPat: (LongVId: true)))
                                                          (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: rest))))))
                                                         (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: src)))))))))
                                                     (PARAtExp:
                                                      (APPExp:
                                                       (ATExp:
                                                        (PARAtExp:
                                                         (FNExp:
                                                          (Match:
                                                           (Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: true))))
                                                           (Match:
                                                            (Mrule:
                                                             (ATPat: (IDAtPat: (LongVId: false)))
                                                             (APPExp:
                                                              (ATExp:
                                                               (PARAtExp:
                                                                (FNExp:
                                                                 (Match:
                                                                  (Mrule:
                                                                   (ATPat: (IDAtPat: (LongVId: true)))
                                                                   (ATExp:
                                                                    (PARAtExp:
                                                                     (APPExp:
                                                                      (ATExp: (IDAtExp: (LongVId: <=)))
                                                                      (RECORDAtExp:
                                                                       (ExpRow:
                                                                        (Lab: |1|)
                                                                        (ATExp: (IDAtExp: (LongVId: c)))
                                                                        (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (CHARSCon: #\return))))))))))
                                                                  (Match:
                                                                   (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
                                                              (PARAtExp:
                                                               (ATExp:
                                                                (PARAtExp:
                                                                 (APPExp:
                                                                  (ATExp: (IDAtExp: (LongVId: <=)))
                                                                  (RECORDAtExp:
                                                                   (ExpRow:
                                                                    (Lab: |1|)
                                                                    (ATExp: (SCONAtExp: (CHARSCon: #\tab)))
                                                                    (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: c)))))))))))))))))
                                                       (PARAtExp:
                                                        (ATExp:
                                                         (PARAtExp:
                                                          (APPExp:
                                                           (ATExp: (IDAtExp: (LongVId: =)))
                                                           (RECORDAtExp:
                                                            (ExpRow:
                                                             (Lab: |1|)
                                                             (ATExp: (IDAtExp: (LongVId: c)))
                                                             (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (CHARSCon: #\space)))))))))))))))))))
                                              (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: getc))) (IDAtExp: (LongVId: src))))))))))))
                                        (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10551)))))))))))))
                                 (ATExp: (IDAtExp: (LongVId: h))))))))))
                          (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10552))))))))))))))))
                (SEQStrDec:
                 (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
                 (DECStrDec:
                  (VALDec:
                   (TyVarseq:)
                   (RECValBind:
                    (PLAINValBind:
                     (ATPat: (IDAtPat: (LongVId: splitl)))
                     (FNExp:
                      (Match:
                       (Mrule:
                        (ATPat: (IDAtPat: (LongVId: _id10556)))
                        (FNExp:
                         (Match:
                          (Mrule:
                           (ATPat: (IDAtPat: (LongVId: _id10557)))
                           (APPExp:
                            (ATExp:
                             (PARAtExp:
                              (FNExp:
                               (Match:
                                (Mrule:
                                 (ATPat:
                                  (RECORDAtPat:
                                   (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: p))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: getc)))))))
                                 (ATExp:
                                  (LETAtExp:
                                   (SEQDec:
                                    (VALDec:
                                     (TyVarseq:)
                                     (PLAINValBind:
                                      (ATPat: (IDAtPat: (LongVId: max)))
                                      (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ref))) (SCONAtExp: (INTSCon: 15)))))))
                                    (SEQDec:
                                     (VALDec:
                                      (TyVarseq:)
                                      (PLAINValBind:
                                       (ATPat: (IDAtPat: (LongVId: tmp)))
                                       (ATExp:
                                        (PARAtExp:
                                         (APPExp:
                                          (ATExp: (IDAtExp: (LongVId: ref)))
                                          (PARAtExp:
                                           (ATExp:
                                            (PARAtExp:
                                             (APPExp:
                                              (ATExp: (IDAtExp: (LongVId: mkstring_)))
                                              (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: !))) (IDAtExp: (LongVId: max)))))))))))))))
                                     (SEQDec:
                                      (VALDec:
                                       (TyVarseq:)
                                       (RECValBind:
                                        (PLAINValBind:
                                         (ATPat: (IDAtPat: (LongVId: realloc)))
                                         (FNExp:
                                          (Match:
                                           (Mrule:
                                            (ATPat: (IDAtPat: (LongVId: _id10553)))
                                            (APPExp:
                                             (ATExp:
                                              (PARAtExp:
                                               (FNExp:
                                                (Match:
                                                 (Mrule:
                                                  (ATPat: (PARAtPat: (ATPat: (RECORDAtPat:))))
                                                  (ATExp:
                                                   (LETAtExp:
                                                    (SEQDec:
                                                     (VALDec:
                                                      (TyVarseq:)
                                                      (PLAINValBind:
                                                       (ATPat: (IDAtPat: (LongVId: newmax)))
                                                       (ATExp:
                                                        (PARAtExp:
                                                         (APPExp:
                                                          (ATExp: (IDAtExp: (LongVId: *)))
                                                          (RECORDAtExp:
                                                           (ExpRow:
                                                            (Lab: |1|)
                                                            (ATExp: (SCONAtExp: (INTSCon: 2)))
                                                            (ExpRow:
                                                             (Lab: |2|)
                                                             (ATExp:
                                                              (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: !))) (IDAtExp: (LongVId: max)))))))))))))
                                                     (VALDec:
                                                      (TyVarseq:)
                                                      (PLAINValBind:
                                                       (ATPat: (IDAtPat: (LongVId: newtmp)))
                                                       (ATExp:
                                                        (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: mkstring_))) (IDAtExp: (LongVId: newmax))))))))
                                                    (ATExp:
                                                     (PARAtExp:
                                                      (APPExp:
                                                       (ATExp:
                                                        (PARAtExp:
                                                         (FNExp:
                                                          (Match:
                                                           (Mrule:
                                                            (ATPat: (WILDCARDAtPat:))
                                                            (APPExp:
                                                             (ATExp:
                                                              (PARAtExp:
                                                               (FNExp:
                                                                (Match:
                                                                 (Mrule:
                                                                  (ATPat: (WILDCARDAtPat:))
                                                                  (ATExp:
                                                                   (PARAtExp:
                                                                    (APPExp:
                                                                     (ATExp: (IDAtExp: (LongVId: :=)))
                                                                     (RECORDAtExp:
                                                                      (ExpRow:
                                                                       (Lab: |1|)
                                                                       (ATExp: (IDAtExp: (LongVId: tmp)))
                                                                       (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: newtmp))))))))))))))
                                                             (PARAtExp:
                                                              (ATExp:
                                                               (PARAtExp:
                                                                (APPExp:
                                                                 (ATExp: (IDAtExp: (LongVId: :=)))
                                                                 (RECORDAtExp:
                                                                  (ExpRow:
                                                                   (Lab: |1|)
                                                                   (ATExp: (IDAtExp: (LongVId: max)))
                                                                   (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: newmax))))))))))))))))
                                                       (PARAtExp:
                                                        (ATExp:
                                                         (PARAtExp:
                                                          (APPExp:
                                                           (ATExp:
                                                            (PARAtExp:
                                                             (APPExp:
                                                              (ATExp:
                                                               (PARAtExp:
                                                                (APPExp:
                                                                 (ATExp:
                                                                  (PARAtExp:
                                                                   (APPExp:
                                                                    (ATExp:
                                                                     (PARAtExp:
                                                                      (APPExp:
                                                                       (ATExp: (IDAtExp: (LongVId: blit_)))
                                                                       (PARAtExp:
                                                                        (ATExp:
                                                                         (PARAtExp:
                                                                          (APPExp: (ATExp: (IDAtExp: (LongVId: !))) (IDAtExp: (LongVId: tmp)))))))))
                                                                    (SCONAtExp: (INTSCon: 0)))))
                                                                 (IDAtExp: (LongVId: newtmp)))))
                                                              (SCONAtExp: (INTSCon: 0)))))
                                                           (PARAtExp:
                                                            (ATExp:
                                                             (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: !))) (IDAtExp: (LongVId: max))))))))))))))))))))
                                             (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10553)))))))))))))
                                      (VALDec:
                                       (TyVarseq:)
                                       (RECValBind:
                                        (PLAINValBind:
                                         (ATPat: (IDAtPat: (LongVId: h)))
                                         (FNExp:
                                          (Match:
                                           (Mrule:
                                            (ATPat: (IDAtPat: (LongVId: _id10554)))
                                            (FNExp:
                                             (Match:
                                              (Mrule:
                                               (ATPat: (IDAtPat: (LongVId: _id10555)))
                                               (APPExp:
                                                (ATExp:
                                                 (PARAtExp:
                                                  (FNExp:
                                                   (Match:
                                                    (Mrule:
                                                     (ATPat:
                                                      (RECORDAtPat:
                                                       (FIELDPatRow:
                                                        (Lab: |1|)
                                                        (ATPat: (IDAtPat: (LongVId: len)))
                                                        (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: src)))))))
                                                     (APPExp:
                                                      (ATExp:
                                                       (PARAtExp:
                                                        (FNExp:
                                                         (Match:
                                                          (Mrule:
                                                           (ATPat: (IDAtPat: (LongVId: NONE)))
                                                           (ATExp:
                                                            (RECORDAtExp:
                                                             (ExpRow:
                                                              (Lab: |1|)
                                                              (ATExp:
                                                               (PARAtExp:
                                                                (APPExp:
                                                                 (ATExp:
                                                                  (PARAtExp:
                                                                   (APPExp:
                                                                    (ATExp:
                                                                     (PARAtExp:
                                                                      (APPExp:
                                                                       (ATExp: (IDAtExp: (LongVId: sub_string_)))
                                                                       (PARAtExp:
                                                                        (ATExp:
                                                                         (PARAtExp:
                                                                          (APPExp: (ATExp: (IDAtExp: (LongVId: !))) (IDAtExp: (LongVId: tmp)))))))))
                                                                    (SCONAtExp: (INTSCon: 0)))))
                                                                 (IDAtExp: (LongVId: len)))))
                                                              (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: src))))))))
                                                          (Match:
                                                           (Mrule:
                                                            (ATPat:
                                                             (PARAtPat:
                                                              (CONPat:
                                                               (LongVId: SOME)
                                                               (RECORDAtPat:
                                                                (FIELDPatRow:
                                                                 (Lab: |1|)
                                                                 (ATPat: (IDAtPat: (LongVId: c)))
                                                                 (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: rest)))))))))
                                                            (APPExp:
                                                             (ATExp:
                                                              (PARAtExp:
                                                               (FNExp:
                                                                (Match:
                                                                 (Mrule:
                                                                  (ATPat: (IDAtPat: (LongVId: true)))
                                                                  (ATExp:
                                                                   (PARAtExp:
                                                                    (APPExp:
                                                                     (ATExp:
                                                                      (PARAtExp:
                                                                       (FNExp:
                                                                        (Match:
                                                                         (Mrule:
                                                                          (ATPat: (WILDCARDAtPat:))
                                                                          (APPExp:
                                                                           (ATExp:
                                                                            (PARAtExp:
                                                                             (FNExp:
                                                                              (Match:
                                                                               (Mrule:
                                                                                (ATPat: (WILDCARDAtPat:))
                                                                                (ATExp:
                                                                                 (PARAtExp:
                                                                                  (APPExp:
                                                                                   (ATExp:
                                                                                    (PARAtExp:
                                                                                     (APPExp:
                                                                                      (ATExp: (IDAtExp: (LongVId: h)))
                                                                                      (PARAtExp:
                                                                                       (ATExp:
                                                                                        (PARAtExp:
                                                                                         (APPExp:
                                                                                          (ATExp: (IDAtExp: (LongVId: +)))
                                                                                          (RECORDAtExp:
                                                                                           (ExpRow:
                                                                                            (Lab: |1|)
                                                                                            (ATExp: (IDAtExp: (LongVId: len)))
                                                                                            (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))
                                                                                   (IDAtExp: (LongVId: rest))))))))))
                                                                           (PARAtExp:
                                                                            (ATExp:
                                                                             (PARAtExp:
                                                                              (APPExp:
                                                                               (ATExp:
                                                                                (PARAtExp:
                                                                                 (APPExp:
                                                                                  (ATExp:
                                                                                   (PARAtExp:
                                                                                    (APPExp:
                                                                                     (ATExp: (IDAtExp: (LongVId: set_nth_)))
                                                                                     (PARAtExp:
                                                                                      (ATExp:
                                                                                       (PARAtExp:
                                                                                        (APPExp:
                                                                                         (ATExp: (IDAtExp: (LongVId: !)))
                                                                                         (IDAtExp: (LongVId: tmp)))))))))
                                                                                  (IDAtExp: (LongVId: len)))))
                                                                               (IDAtExp: (LongVId: c))))))))))))
                                                                     (PARAtExp:
                                                                      (APPExp:
                                                                       (ATExp:
                                                                        (PARAtExp:
                                                                         (FNExp:
                                                                          (Match:
                                                                           (Mrule:
                                                                            (ATPat: (IDAtPat: (LongVId: true)))
                                                                            (ATExp:
                                                                             (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: realloc))) (RECORDAtExp:)))))
                                                                           (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (RECORDAtExp:))))))))
                                                                       (PARAtExp:
                                                                        (ATExp:
                                                                         (PARAtExp:
                                                                          (APPExp:
                                                                           (ATExp: (IDAtExp: (LongVId: >=)))
                                                                           (RECORDAtExp:
                                                                            (ExpRow:
                                                                             (Lab: |1|)
                                                                             (ATExp: (IDAtExp: (LongVId: len)))
                                                                             (ExpRow:
                                                                              (Lab: |2|)
                                                                              (ATExp:
                                                                               (PARAtExp:
                                                                                (APPExp:
                                                                                 (ATExp: (IDAtExp: (LongVId: !)))
                                                                                 (IDAtExp: (LongVId: max))))))))))))))))))
                                                                 (Match:
                                                                  (Mrule:
                                                                   (ATPat: (IDAtPat: (LongVId: false)))
                                                                   (ATExp:
                                                                    (RECORDAtExp:
                                                                     (ExpRow:
                                                                      (Lab: |1|)
                                                                      (ATExp:
                                                                       (PARAtExp:
                                                                        (APPExp:
                                                                         (ATExp:
                                                                          (PARAtExp:
                                                                           (APPExp:
                                                                            (ATExp:
                                                                             (PARAtExp:
                                                                              (APPExp:
                                                                               (ATExp: (IDAtExp: (LongVId: sub_string_)))
                                                                               (PARAtExp:
                                                                                (ATExp:
                                                                                 (PARAtExp:
                                                                                  (APPExp: (ATExp: (IDAtExp: (LongVId: !))) (IDAtExp: (LongVId: tmp)))))))))
                                                                            (SCONAtExp: (INTSCon: 0)))))
                                                                         (IDAtExp: (LongVId: len)))))
                                                                      (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: src)))))))))))))
                                                             (PARAtExp:
                                                              (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: p))) (IDAtExp: (LongVId: c)))))))))))))
                                                      (PARAtExp:
                                                       (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: getc))) (IDAtExp: (LongVId: src))))))))))))
                                                (PARAtExp:
                                                 (ATExp:
                                                  (RECORDAtExp:
                                                   (ExpRow:
                                                    (Lab: |1|)
                                                    (ATExp: (IDAtExp: (LongVId: _id10554)))
                                                    (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10555)))))))))))))))))))))
                                   (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (SCONAtExp: (INTSCon: 0))))))))))))
                            (PARAtExp:
                             (ATExp:
                              (RECORDAtExp:
                               (ExpRow:
                                (Lab: |1|)
                                (ATExp: (IDAtExp: (LongVId: _id10556)))
                                (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10557)))))))))))))))))))))
               (SEQStrDec:
                (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
                (DECStrDec:
                 (VALDec:
                  (TyVarseq:)
                  (RECValBind:
                   (PLAINValBind:
                    (ATPat: (IDAtPat: (LongVId: takel)))
                    (FNExp:
                     (Match:
                      (Mrule:
                       (ATPat: (IDAtPat: (LongVId: _id10559)))
                       (FNExp:
                        (Match:
                         (Mrule:
                          (ATPat: (IDAtPat: (LongVId: _id10560)))
                          (FNExp:
                           (Match:
                            (Mrule:
                             (ATPat: (IDAtPat: (LongVId: _id10561)))
                             (APPExp:
                              (ATExp:
                               (PARAtExp:
                                (FNExp:
                                 (Match:
                                  (Mrule:
                                   (ATPat:
                                    (RECORDAtPat:
                                     (FIELDPatRow:
                                      (Lab: |1|)
                                      (ATPat: (IDAtPat: (LongVId: p)))
                                      (FIELDPatRow:
                                       (Lab: |2|)
                                       (ATPat: (IDAtPat: (LongVId: getc)))
                                       (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: src))))))))
                                   (ATExp:
                                    (PARAtExp:
                                     (APPExp:
                                      (ATExp:
                                       (PARAtExp:
                                        (FNExp:
                                         (Match:
                                          (Mrule:
                                           (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: _id10558))) (DOTSPatRow:))))
                                           (ATExp: (IDAtExp: (LongVId: _id10558))))))))
                                      (PARAtExp:
                                       (ATExp:
                                        (PARAtExp:
                                         (APPExp:
                                          (ATExp:
                                           (PARAtExp:
                                            (APPExp:
                                             (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitl))) (IDAtExp: (LongVId: p)))))
                                             (IDAtExp: (LongVId: getc)))))
                                          (IDAtExp: (LongVId: src))))))))))))))
                              (PARAtExp:
                               (ATExp:
                                (RECORDAtExp:
                                 (ExpRow:
                                  (Lab: |1|)
                                  (ATExp: (IDAtExp: (LongVId: _id10559)))
                                  (ExpRow:
                                   (Lab: |2|)
                                   (ATExp: (IDAtExp: (LongVId: _id10560)))
                                   (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: _id10561)))))))))))))))))))))))))
              (SEQStrDec:
               (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
               (DECStrDec:
                (VALDec:
                 (TyVarseq:)
                 (RECValBind:
                  (PLAINValBind:
                   (ATPat: (IDAtPat: (LongVId: padLeft)))
                   (FNExp:
                    (Match:
                     (Mrule:
                      (ATPat: (IDAtPat: (LongVId: _id10562)))
                      (FNExp:
                       (Match:
                        (Mrule:
                         (ATPat: (IDAtPat: (LongVId: _id10563)))
                         (FNExp:
                          (Match:
                           (Mrule:
                            (ATPat: (IDAtPat: (LongVId: _id10564)))
                            (APPExp:
                             (ATExp:
                              (PARAtExp:
                               (FNExp:
                                (Match:
                                 (Mrule:
                                  (ATPat:
                                   (RECORDAtPat:
                                    (FIELDPatRow:
                                     (Lab: |1|)
                                     (ATPat: (IDAtPat: (LongVId: c)))
                                     (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: n))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: s))))))))
                                  (ATExp:
                                   (LETAtExp:
                                    (VALDec:
                                     (TyVarseq:)
                                     (PLAINValBind:
                                      (ATPat: (IDAtPat: (LongVId: ssize)))
                                      (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: s)))))))
                                    (APPExp:
                                     (ATExp:
                                      (PARAtExp:
                                       (FNExp:
                                        (Match:
                                         (Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: s))))
                                         (Match:
                                          (Mrule:
                                           (ATPat: (IDAtPat: (LongVId: false)))
                                           (ATExp:
                                            (LETAtExp:
                                             (VALDec:
                                              (TyVarseq:)
                                              (PLAINValBind:
                                               (ATPat: (IDAtPat: (LongVId: res)))
                                               (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: mkstring_))) (IDAtExp: (LongVId: n)))))))
                                             (ATExp:
                                              (PARAtExp:
                                               (APPExp:
                                                (ATExp:
                                                 (PARAtExp:
                                                  (FNExp:
                                                   (Match:
                                                    (Mrule:
                                                     (ATPat: (WILDCARDAtPat:))
                                                     (APPExp:
                                                      (ATExp:
                                                       (PARAtExp: (FNExp: (Match: (Mrule: (ATPat: (WILDCARDAtPat:)) (ATExp: (IDAtExp: (LongVId: res))))))))
                                                      (PARAtExp:
                                                       (ATExp:
                                                        (PARAtExp:
                                                         (APPExp:
                                                          (ATExp:
                                                           (PARAtExp:
                                                            (APPExp:
                                                             (ATExp:
                                                              (PARAtExp:
                                                               (APPExp:
                                                                (ATExp:
                                                                 (PARAtExp:
                                                                  (APPExp:
                                                                   (ATExp:
                                                                    (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: blit_))) (IDAtExp: (LongVId: s)))))
                                                                   (SCONAtExp: (INTSCon: 0)))))
                                                                (IDAtExp: (LongVId: res)))))
                                                             (PARAtExp:
                                                              (ATExp:
                                                               (PARAtExp:
                                                                (APPExp:
                                                                 (ATExp: (IDAtExp: (LongVId: -)))
                                                                 (RECORDAtExp:
                                                                  (ExpRow:
                                                                   (Lab: |1|)
                                                                   (ATExp: (IDAtExp: (LongVId: n)))
                                                                   (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: ssize)))))))))))))
                                                          (IDAtExp: (LongVId: ssize))))))))))))
                                                (PARAtExp:
                                                 (ATExp:
                                                  (PARAtExp:
                                                   (APPExp:
                                                    (ATExp:
                                                     (PARAtExp:
                                                      (APPExp:
                                                       (ATExp:
                                                        (PARAtExp:
                                                         (APPExp:
                                                          (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: fill_))) (IDAtExp: (LongVId: res)))))
                                                          (SCONAtExp: (INTSCon: 0)))))
                                                       (PARAtExp:
                                                        (ATExp:
                                                         (PARAtExp:
                                                          (APPExp:
                                                           (ATExp: (IDAtExp: (LongVId: -)))
                                                           (RECORDAtExp:
                                                            (ExpRow:
                                                             (Lab: |1|)
                                                             (ATExp: (IDAtExp: (LongVId: n)))
                                                             (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: ssize)))))))))))))
                                                    (IDAtExp: (LongVId: c)))))))))))))))))
                                     (PARAtExp:
                                      (ATExp:
                                       (PARAtExp:
                                        (APPExp:
                                         (ATExp: (IDAtExp: (LongVId: <=)))
                                         (RECORDAtExp:
                                          (ExpRow:
                                           (Lab: |1|)
                                           (ATExp: (IDAtExp: (LongVId: n)))
                                           (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: ssize))))))))))))))))))
                             (PARAtExp:
                              (ATExp:
                               (RECORDAtExp:
                                (ExpRow:
                                 (Lab: |1|)
                                 (ATExp: (IDAtExp: (LongVId: _id10562)))
                                 (ExpRow:
                                  (Lab: |2|)
                                  (ATExp: (IDAtExp: (LongVId: _id10563)))
                                  (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: _id10564)))))))))))))))))))))))))
             (SEQStrDec:
              (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
              (DECStrDec:
               (VALDec:
                (TyVarseq:)
                (RECValBind:
                 (PLAINValBind:
                  (ATPat: (IDAtPat: (LongVId: padRight)))
                  (FNExp:
                   (Match:
                    (Mrule:
                     (ATPat: (IDAtPat: (LongVId: _id10565)))
                     (FNExp:
                      (Match:
                       (Mrule:
                        (ATPat: (IDAtPat: (LongVId: _id10566)))
                        (FNExp:
                         (Match:
                          (Mrule:
                           (ATPat: (IDAtPat: (LongVId: _id10567)))
                           (APPExp:
                            (ATExp:
                             (PARAtExp:
                              (FNExp:
                               (Match:
                                (Mrule:
                                 (ATPat:
                                  (RECORDAtPat:
                                   (FIELDPatRow:
                                    (Lab: |1|)
                                    (ATPat: (IDAtPat: (LongVId: c)))
                                    (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: n))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: s))))))))
                                 (ATExp:
                                  (LETAtExp:
                                   (VALDec:
                                    (TyVarseq:)
                                    (PLAINValBind:
                                     (ATPat: (IDAtPat: (LongVId: ssize)))
                                     (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: s)))))))
                                   (APPExp:
                                    (ATExp:
                                     (PARAtExp:
                                      (FNExp:
                                       (Match:
                                        (Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: s))))
                                        (Match:
                                         (Mrule:
                                          (ATPat: (IDAtPat: (LongVId: false)))
                                          (ATExp:
                                           (LETAtExp:
                                            (VALDec:
                                             (TyVarseq:)
                                             (PLAINValBind:
                                              (ATPat: (IDAtPat: (LongVId: res)))
                                              (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: mkstring_))) (IDAtExp: (LongVId: n)))))))
                                            (ATExp:
                                             (PARAtExp:
                                              (APPExp:
                                               (ATExp:
                                                (PARAtExp:
                                                 (FNExp:
                                                  (Match:
                                                   (Mrule:
                                                    (ATPat: (WILDCARDAtPat:))
                                                    (APPExp:
                                                     (ATExp:
                                                      (PARAtExp: (FNExp: (Match: (Mrule: (ATPat: (WILDCARDAtPat:)) (ATExp: (IDAtExp: (LongVId: res))))))))
                                                     (PARAtExp:
                                                      (ATExp:
                                                       (PARAtExp:
                                                        (APPExp:
                                                         (ATExp:
                                                          (PARAtExp:
                                                           (APPExp:
                                                            (ATExp:
                                                             (PARAtExp:
                                                              (APPExp:
                                                               (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: fill_))) (IDAtExp: (LongVId: res)))))
                                                               (IDAtExp: (LongVId: ssize)))))
                                                            (PARAtExp:
                                                             (ATExp:
                                                              (PARAtExp:
                                                               (APPExp:
                                                                (ATExp: (IDAtExp: (LongVId: -)))
                                                                (RECORDAtExp:
                                                                 (ExpRow:
                                                                  (Lab: |1|)
                                                                  (ATExp: (IDAtExp: (LongVId: n)))
                                                                  (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: ssize)))))))))))))
                                                         (IDAtExp: (LongVId: c))))))))))))
                                               (PARAtExp:
                                                (ATExp:
                                                 (PARAtExp:
                                                  (APPExp:
                                                   (ATExp:
                                                    (PARAtExp:
                                                     (APPExp:
                                                      (ATExp:
                                                       (PARAtExp:
                                                        (APPExp:
                                                         (ATExp:
                                                          (PARAtExp:
                                                           (APPExp:
                                                            (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: blit_))) (IDAtExp: (LongVId: s)))))
                                                            (SCONAtExp: (INTSCon: 0)))))
                                                         (IDAtExp: (LongVId: res)))))
                                                      (SCONAtExp: (INTSCon: 0)))))
                                                   (IDAtExp: (LongVId: ssize)))))))))))))))))
                                    (PARAtExp:
                                     (ATExp:
                                      (PARAtExp:
                                       (APPExp:
                                        (ATExp: (IDAtExp: (LongVId: <=)))
                                        (RECORDAtExp:
                                         (ExpRow:
                                          (Lab: |1|)
                                          (ATExp: (IDAtExp: (LongVId: n)))
                                          (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: ssize))))))))))))))))))
                            (PARAtExp:
                             (ATExp:
                              (RECORDAtExp:
                               (ExpRow:
                                (Lab: |1|)
                                (ATExp: (IDAtExp: (LongVId: _id10565)))
                                (ExpRow:
                                 (Lab: |2|)
                                 (ATExp: (IDAtExp: (LongVId: _id10566)))
                                 (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: _id10567)))))))))))))))))))))))))
            (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:)))))
         (IDSigExp: (SigId: StringCvt-sig))))))))))