(module Substring-struct (planet chongkai/sml)
(#%module-begin
(Program:
(SIGDECTopDec:
(SigDec:
(SigBind:
(SigId: SUBSTRING-sig)
(SIGSigExp:
(SEQSpec:
(VALSpec: (ValDesc: (VId: full) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: substring-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: substring)
(ARROWTy:
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: string-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: int-type))))))
(CONTy: (Tyseq:) (LongTyCon: substring-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: extract)
(ARROWTy:
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: string-type))
(TyRow:
(Lab: |2|)
(CONTy: (Tyseq:) (LongTyCon: int-type))
(TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: int-type))) (LongTyCon: option-type))))))
(CONTy: (Tyseq:) (LongTyCon: substring-type)))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: all) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: substring-type)))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: string) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: base)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(PARTy:
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: string-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: int-type))))))))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: isEmpty) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: getc)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(CONTy:
(Tyseq:
(PARTy:
(RECORDTy:
(TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: char-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: substring-type)))))))
(LongTyCon: option-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: first)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: char-type))) (LongTyCon: option-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: triml)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: int-type))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: substring-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: trimr)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: int-type))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: substring-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: sub)
(ARROWTy:
(RECORDTy:
(TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: substring-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
(CONTy: (Tyseq:) (LongTyCon: char-type)))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: size) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: slice)
(ARROWTy:
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(TyRow:
(Lab: |2|)
(CONTy: (Tyseq:) (LongTyCon: int-type))
(TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: int-type))) (LongTyCon: option-type))))))
(CONTy: (Tyseq:) (LongTyCon: substring-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: concat)
(ARROWTy:
(CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: substring-type))) (LongTyCon: list-type))
(CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: explode)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: char-type))) (LongTyCon: list-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: isPrefix)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: string-type))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: compare)
(ARROWTy:
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: substring-type)))))
(CONTy: (Tyseq:) (LongTyCon: order-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: collate)
(ARROWTy:
(PARTy:
(ARROWTy:
(RECORDTy:
(TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: char-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: char-type)))))
(CONTy: (Tyseq:) (LongTyCon: order-type))))
(ARROWTy:
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: substring-type)))))
(CONTy: (Tyseq:) (LongTyCon: order-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: dropl)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: substring-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: dropr)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: substring-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: takel)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: substring-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: taker)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: substring-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: splitl)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: substring-type)))))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: splitr)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: substring-type)))))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: splitAt)
(ARROWTy:
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: substring-type))))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: position)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: string-type))
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: substring-type)))))))))
(SEQSpec:
(EXCEPTIONSpec: (ExDesc: (VId: Span)))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: span)
(ARROWTy:
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: substring-type)))))
(CONTy: (Tyseq:) (LongTyCon: substring-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: translate)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: string-type))))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (CONTy: (Tyseq:) (LongTyCon: string-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: tokens)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: substring-type))) (LongTyCon: list-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: fields)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: substring-type))) (LongTyCon: list-type))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: foldl)
(ARROWTy:
(PARTy:
(ARROWTy:
(RECORDTy:
(TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: char-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)))))
(VARTy: (TyVar: |'a|))))
(ARROWTy:
(VARTy: (TyVar: |'a|))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (VARTy: (TyVar: |'a|)))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: foldr)
(ARROWTy:
(PARTy:
(ARROWTy:
(RECORDTy:
(TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: char-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)))))
(VARTy: (TyVar: |'a|))))
(ARROWTy:
(VARTy: (TyVar: |'a|))
(ARROWTy: (CONTy: (Tyseq:) (LongTyCon: substring-type)) (VARTy: (TyVar: |'a|)))))))
(VALSpec:
(ValDesc:
(VId: app)
(ARROWTy:
(PARTy: (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type))))
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: substring-type))
(CONTy: (Tyseq:) (LongTyCon: unit-type)))))))))))))))))))))))))))))))))))))))))))
(STRDECTopDec:
(STRUCTUREStrDec:
(StrBind:
(StrId: Substring-struct)
(SEALStrExp:
(STRUCTStrExp:
(SEQStrDec:
(LOCALStrDec:
(DECStrDec: (OPENDec: (LongStrId: stringprimitive-struct)))
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(DECStrDec:
(TYPEDec:
(TypBind:
(TyVarseq:)
(TyCon: substring-type)
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: string-type))
(TyRow:
(Lab: |2|)
(CONTy: (Tyseq:) (LongTyCon: int-type))
(TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: int-type)))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: base)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10542)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: arg))))) (ATExp: (IDAtExp: (LongVId: arg))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10542))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: string)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10543)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: newstr)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: mkstring_))) (IDAtExp: (LongVId: n)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (FNExp: (Match: (Mrule: (ATPat: (WILDCARDAtPat:)) (ATExp: (IDAtExp: (LongVId: newstr))))))))
(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: i)))))
(IDAtExp: (LongVId: newstr)))))
(SCONAtExp: (INTSCon: 0)))))
(IDAtExp: (LongVId: n))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10543))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: extract)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10544)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: NONE))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: s)))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i)))))))))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(RAISEExp: (ATExp: (IDAtExp: (LongVId: General.Subscript))))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: s))))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (INTSCon: 0)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (IDAtPat: (LongVId: n))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: n)))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(RAISEExp: (ATExp: (IDAtExp: (LongVId: General.Subscript))))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: s)))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))))))))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (INTSCon: 0)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n))))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (INTSCon: 0)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i)))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10544))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: substring)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10545)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: extract)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow:
(Lab: |3|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SOME))) (IDAtExp: (LongVId: n)))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10545)))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: all)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10546)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (INTSCon: 0)))
(ExpRow:
(Lab: |3|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: s)))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10546))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: getc)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10547)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (SCONAtPat: (INTSCon: 0))))))))))
(ATExp: (IDAtExp: (LongVId: NONE))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))))
(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:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1))))))))))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10547))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: first)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10548)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))))
(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)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s)))))
(IDAtExp: (LongVId: i)))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 0))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10548))))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: isEmpty)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10549)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 0))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10549))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: triml)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10550)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: k)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Subscript)))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n)))))))))
(ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (INTSCon: 0)))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: k)))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: k))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 0))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10550))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: trimr)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10551)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: k)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Subscript)))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (INTSCon: 0)))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: k))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 0))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10551))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: sub)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10552)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |s'|)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |i'|)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: |n'|))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i)))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Subscript)))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: |s'|)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |i'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i)))))))))))))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: true))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |n'|)))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 0))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10552))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: size)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10553)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))))
(ATExp: (IDAtExp: (LongVId: n))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10553))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: slice)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10554)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |s'|)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |i'|)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: |n'|))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: NONE))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |s'|)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |i'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i)))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |n'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i)))))))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Subscript))))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |n'|))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (INTSCon: 0)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |s'|)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |i'|)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: |n'|))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (IDAtPat: (LongVId: n))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |s'|)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |i'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i)))))))))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: n)))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Subscript))))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |n'|))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (INTSCon: 0)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n))))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (INTSCon: 0)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i)))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10554))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: splitAt)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10555)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: k)))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Subscript)))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: k))))))))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: k)))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: k))))))))))))))))))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: true))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n)))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 0))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10555))))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: concat)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10560)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: strs)))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: acc)))
(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: nil)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: len)))))))
(ATExp: (IDAtExp: (LongVId: len))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: len1))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vr)))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: len)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: acc))) (IDAtExp: (LongVId: vr)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: len1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: len)))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10556)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10557))))))))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: len)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: acc))) (IDAtExp: (LongVId: strs)))))
(SCONAtExp: (INTSCon: 0)))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: newstr)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Size)))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: mkstring_))) (IDAtExp: (LongVId: len)))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: len)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: String.maxSize)))))))))))))
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: copyall)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10558)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10559)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: to)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))
(ATExp: (RECORDAtExp:)))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: to)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s1)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i1)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: len1))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vr)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (WILDCARDAtPat:))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: copyall)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: to)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: len1)))))))))))))
(IDAtExp: (LongVId: vr))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: blit_))) (IDAtExp: (LongVId: s1)))))
(IDAtExp: (LongVId: i1)))))
(IDAtExp: (LongVId: newstr)))))
(IDAtExp: (LongVId: to)))))
(IDAtExp: (LongVId: len1)))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10558)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10559)))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (FNExp: (Match: (Mrule: (ATPat: (WILDCARDAtPat:)) (ATExp: (IDAtExp: (LongVId: newstr))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: copyall))) (SCONAtExp: (INTSCon: 0)))))
(IDAtExp: (LongVId: strs))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10560))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: compare)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10562)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s1)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i1)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n1))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s2)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i2)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n2))))))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: stop)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: n1))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: n2)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n2)))))))))))))
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: h)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10561)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: j)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: LESS))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: GREATER))))
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: EQUAL)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n2)))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n2))))))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: c1)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s1)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: j)))))))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: c2)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s2)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i2)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: j))))))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: LESS))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: GREATER))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: h)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: c1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: c2)))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: c1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: c2)))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: stop))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10561))))))))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (SCONAtExp: (INTSCon: 0))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10562))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: isPrefix)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10564)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10565)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s1)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s2)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i2)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n2))))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: stop)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: n2))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.size))) (IDAtExp: (LongVId: s1)))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n2)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.size))) (IDAtExp: (LongVId: s1)))))))))))))))
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: h)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10563)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: j)))))
(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: h)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1))))))))))))))
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s1)))))
(IDAtExp: (LongVId: j)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s2)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i2)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: j)))))))))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: stop))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10563))))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (SCONAtExp: (INTSCon: 0))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.size))) (IDAtExp: (LongVId: s1)))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n2))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10564)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10565)))))))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: collate)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10567)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10568)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: cmp)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s1)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i1)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n1))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s2)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i2)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n2))))))))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: stop)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: n1))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: n2)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n2)))))))))))))
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: h)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10566)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: j)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: LESS))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: GREATER))))
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: EQUAL)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n2)))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n2))))))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: LESS))) (ATExp: (IDAtExp: (LongVId: LESS))))
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: GREATER))) (ATExp: (IDAtExp: (LongVId: GREATER))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: EQUAL)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: h)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: cmp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s1)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: j)))))))))))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s2)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i2)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: j)))))))))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: stop))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10566))))))))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (SCONAtExp: (INTSCon: 0))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10567)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10568)))))))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: foldl)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10569)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10570)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10571)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: f)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: e)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: sus))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Strbase.foldl))) (IDAtExp: (LongVId: f)))))
(IDAtExp: (LongVId: e)))))
(IDAtExp: (LongVId: sus))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10569)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: _id10570)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: _id10571)))))))))))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: foldr)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10574)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10575)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10576)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: f)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: e)))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n)))))))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: h)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10572)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10573)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: j)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: res))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: h)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: f)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s)))))
(IDAtExp: (LongVId: j)))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: res)))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10572)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10573))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: h)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n)))))))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))
(IDAtExp: (LongVId: e))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10574)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: _id10575)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: _id10576)))))))))))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: explode)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10579)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: h)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10577)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10578)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: j)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: res))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: h)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s)))))
(IDAtExp: (LongVId: j)))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: res)))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10577)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10578))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: h)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n)))))))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))
(IDAtExp: (LongVId: nil))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10579))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: app)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10580)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10581)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: f))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ss)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: foldl)))
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: x)))
(FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: f))) (IDAtExp: (LongVId: x))))))))))))
(RECORDAtExp:))))
(IDAtExp: (LongVId: ss))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10580)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10581)))))))))))))))))))
(SEQStrDec:
(DECStrDec: (EXCEPTIONDec: (NEWExBind: (VId: Span))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: span)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10582)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |s'|)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |i'|)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: |n'|))))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Span)))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |i'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |n'|)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))))))))))))))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: true))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <>)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |s'|)))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |i'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |n'|))))))))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10582))))))))))))))
(SEQStrDec:
(LOCALStrDec:
(DECStrDec: (OPENDec: (LongStrId: Strbase-struct)))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: splitl))) (ATExp: (IDAtExp: (LongVId: splitl))))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: splitr))) (ATExp: (IDAtExp: (LongVId: splitr))))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: dropl))) (ATExp: (IDAtExp: (LongVId: dropl))))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: dropr))) (ATExp: (IDAtExp: (LongVId: dropr))))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: takel))) (ATExp: (IDAtExp: (LongVId: takel))))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: taker))) (ATExp: (IDAtExp: (LongVId: taker))))))
(SEQStrDec:
(DECStrDec:
(VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: translate))) (ATExp: (IDAtExp: (LongVId: translate))))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: tokens))) (ATExp: (IDAtExp: (LongVId: tokens))))))
(DECStrDec:
(VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: fields))) (ATExp: (IDAtExp: (LongVId: fields)))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: position)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10586)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10587)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: "")))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ASPat:
(VId: ss)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |s'|)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n)))))))))))))))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |s'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (INTSCon: 0))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: ss))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ASPat:
(VId: ss)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |s'|)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: i)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: n)))))))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: len1)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.size))) (IDAtExp: (LongVId: s)))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: eq)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10583)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10584)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: j)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: k)))))))
(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:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: eq)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1))))))))))))))
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s)))))
(IDAtExp: (LongVId: j)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: |s'|)))))
(IDAtExp: (LongVId: k)))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >=)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: j)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: len1))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10583)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10584))))))))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: stop)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: len1)))))))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: cmp)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10585)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: k)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: ss)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |s'|)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: n)))))))))
(ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (INTSCon: 0)))))))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |s'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: i)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))))))))))))))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |s'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: i)))))))))))))))))))))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: cmp)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: eq))) (SCONAtExp: (INTSCon: 0)))))
(IDAtExp: (LongVId: k))))))
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: s)))))
(IDAtExp: (LongVId: len1)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: sub_))) (IDAtExp: (LongVId: |s'|)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: len1)))))))))))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: k)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: stop))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10585))))))))))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: cmp))) (IDAtExp: (LongVId: i)))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10586)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10587)))))))))))))))))))))))))
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: full)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10588)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: substring)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (INTSCon: 0)))
(ExpRow:
(Lab: |3|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.size))) (IDAtExp: (LongVId: s)))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10588))))))))))))))))
(IDSigExp: (SigId: SUBSTRING-sig))))))))))