(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))))))))))