(module Path-struct (planet chongkai/sml)
(#%module-begin
(Program:
(SIGDECTopDec:
(SigDec:
(SigBind:
(SigId: Path-sig)
(SIGSigExp:
(SEQSpec:
(EXCEPTIONSpec: (ExDesc: (VId: Path)))
(SEQSpec:
(VALSpec: (ValDesc: (VId: parentArc) (CONTy: (Tyseq:) (LongTyCon: string-type))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: currentArc) (CONTy: (Tyseq:) (LongTyCon: string-type))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: fromString)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: string-type))
(RECORDTy:
(TyRow:
(Lab: isAbs)
(CONTy: (Tyseq:) (LongTyCon: bool-type))
(TyRow:
(Lab: vol)
(CONTy: (Tyseq:) (LongTyCon: string-type))
(TyRow: (Lab: arcs) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: string-type))) (LongTyCon: list-type)))))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: toString)
(ARROWTy:
(RECORDTy:
(TyRow:
(Lab: isAbs)
(CONTy: (Tyseq:) (LongTyCon: bool-type))
(TyRow:
(Lab: vol)
(CONTy: (Tyseq:) (LongTyCon: string-type))
(TyRow: (Lab: arcs) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: string-type))) (LongTyCon: list-type))))))
(CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: getVolume) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: validVolume)
(ARROWTy:
(RECORDTy: (TyRow: (Lab: isAbs) (CONTy: (Tyseq:) (LongTyCon: bool-type)) (TyRow: (Lab: vol) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(CONTy: (Tyseq:) (LongTyCon: bool-type)))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: getParent) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: isAbsolute) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: isRelative) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: mkAbsolute)
(ARROWTy:
(RECORDTy:
(TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: string-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: mkRelative)
(ARROWTy:
(RECORDTy:
(TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: string-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: concat)
(ARROWTy:
(RECORDTy:
(TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: string-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec:
(ValDesc: (VId: mkCanonical) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec:
(ValDesc: (VId: isCanonical) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: splitDirFile)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: string-type))
(RECORDTy:
(TyRow:
(Lab: dir)
(CONTy: (Tyseq:) (LongTyCon: string-type))
(TyRow: (Lab: file) (CONTy: (Tyseq:) (LongTyCon: string-type))))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: joinDirFile)
(ARROWTy:
(RECORDTy:
(TyRow: (Lab: dir) (CONTy: (Tyseq:) (LongTyCon: string-type)) (TyRow: (Lab: file) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: dir) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec: (ValDesc: (VId: file) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: splitBaseExt)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: string-type))
(RECORDTy:
(TyRow:
(Lab: base)
(CONTy: (Tyseq:) (LongTyCon: string-type))
(TyRow: (Lab: ext) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: string-type))) (LongTyCon: option-type))))))))
(SEQSpec:
(VALSpec:
(ValDesc:
(VId: joinBaseExt)
(ARROWTy:
(RECORDTy:
(TyRow:
(Lab: base)
(CONTy: (Tyseq:) (LongTyCon: string-type))
(TyRow: (Lab: ext) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: string-type))) (LongTyCon: option-type)))))
(CONTy: (Tyseq:) (LongTyCon: string-type)))))
(SEQSpec:
(VALSpec:
(ValDesc: (VId: base) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
(VALSpec:
(ValDesc:
(VId: ext)
(ARROWTy:
(CONTy: (Tyseq:) (LongTyCon: string-type))
(CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: string-type))) (LongTyCon: option-type))))))))))))))))))))))))))))))
(STRDECTopDec:
(STRUCTUREStrDec:
(StrBind:
(StrId: Path-struct)
(SEALStrExp:
(STRUCTStrExp:
(SEQStrDec:
(DECStrDec: (OPENDec: (LongStrId: OS-struct)))
(SEQStrDec:
(DECStrDec: (EXCEPTIONDec: (NEWExBind: (VId: Path))))
(LOCALStrDec:
(SEQStrDec:
(SEQStrDec:
(DECStrDec: (EMPTYDec:))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: sub))) (ATExp: (IDAtExp: (LongVId: String.sub))))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: substring))) (ATExp: (IDAtExp: (LongVId: String.extract))))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: slash))) (ATExp: (SCONAtExp: (STRINGSCon: "/"))))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: volslash))) (ATExp: (SCONAtExp: (STRINGSCon: "/"))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: isslash)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10542)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: c)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: c)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (CHARSCon: #\/))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10542))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: validVol)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10543)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: ""))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10543))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: getVol)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10544)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SOME))) (SCONAtExp: (STRINGSCon: ""))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: NONE)))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: isslash)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: sub)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow: (Lab: |2|) (ATExp: (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: size))) (IDAtExp: (LongVId: s)))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10544))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: splitabsvolrest)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10545)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: true)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "")))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: substring)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (INTSCon: 1)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: NONE))))))))))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: false)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "")))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: s))))))))))))))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: isslash)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: sub)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: s)))
(ExpRow: (Lab: |2|) (ATExp: (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: size))) (IDAtExp: (LongVId: s)))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10545))))))))))))))))))))))
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:)))
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(SEQStrDec:
(DECStrDec:
(VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: parentArc))) (ATExp: (SCONAtExp: (STRINGSCon: ".."))))))
(SEQStrDec:
(DECStrDec:
(VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: currentArc))) (ATExp: (SCONAtExp: (STRINGSCon: "."))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: isAbsolute)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10547)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: p)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: _id10546))) (DOTSPatRow:))))
(ATExp: (IDAtExp: (LongVId: _id10546))))))))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitabsvolrest))) (IDAtExp: (LongVId: p))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10547))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: isRelative)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10548)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: p)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: not)))
(PARAtExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: isAbsolute))) (IDAtExp: (LongVId: p))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10548)))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: fromString)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10549)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: p)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: false)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: v)))
(FIELDPatRow: (Lab: |3|) (ATPat: (SCONAtPat: (STRINGSCon: ""))))))))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: isAbs)
(ATExp: (IDAtExp: (LongVId: false)))
(ExpRow:
(Lab: vol)
(ATExp: (IDAtExp: (LongVId: v)))
(ExpRow: (Lab: arcs) (ATExp: (IDAtExp: (LongVId: nil)))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: isAbs)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: v)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: rest))))))))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: isAbs)
(ATExp: (IDAtExp: (LongVId: isAbs)))
(ExpRow:
(Lab: vol)
(ATExp: (IDAtExp: (LongVId: v)))
(ExpRow:
(Lab: arcs)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: String.fields))) (IDAtExp: (LongVId: isslash)))))
(IDAtExp: (LongVId: rest))))))))))))))))
(PARAtExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitabsvolrest))) (IDAtExp: (LongVId: p))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10549))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: isRoot)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10550)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: p)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: true)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |3|) (ATPat: (SCONAtPat: (STRINGSCon: ""))))))))
(ATExp: (IDAtExp: (LongVId: true))))
(Match: (Mrule: (ATPat: (WILDCARDAtPat:)) (ATExp: (IDAtExp: (LongVId: false)))))))))
(PARAtExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitabsvolrest))) (IDAtExp: (LongVId: p))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10550))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: getVolume)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10552)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: p)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: _id10551))) (DOTSPatRow:))))
(ATExp: (IDAtExp: (LongVId: _id10551))))))))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitabsvolrest))) (IDAtExp: (LongVId: p))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10552))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: validVolume)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10553)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: isAbs)
(ATPat: (IDAtPat: (LongVId: isAbs)))
(FIELDPatRow: (Lab: vol) (ATPat: (IDAtPat: (LongVId: vol)))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: validVol))) (IDAtExp: (LongVId: vol))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10553))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: toString)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10556)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ASPat:
(VId: path)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: isAbs)
(ATPat: (IDAtPat: (LongVId: isAbs)))
(FIELDPatRow:
(Lab: vol)
(ATPat: (IDAtPat: (LongVId: vol)))
(FIELDPatRow: (Lab: arcs) (ATPat: (IDAtPat: (LongVId: arcs)))))))))))))
(ATExp:
(LETAtExp:
(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: nil)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
(ATExp: (IDAtExp: (LongVId: res))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: a)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ar)))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: ar)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: a)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: slash)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: res)))))))))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10554)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10555))))))))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: false)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))
(ATExp: (IDAtExp: (LongVId: vol))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: false)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: "")))
(FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:))))))))))))
(RAISEExp: (ATExp: (IDAtExp: (LongVId: Path)))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: false)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: a1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: arest)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: String.concat)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: vol)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.rev)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: arest)))))
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: a1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: true)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ^)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: vol)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: volslash))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: true)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: a1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: arest)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: String.concat)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.rev)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: arest)))))
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: a1)))
(ExpRow:
(Lab: |2|)
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: volslash)))
(ExpRow:
(Lab: |2|)
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: vol)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: isAbs)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: arcs))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Path))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: validVolume)))
(RECORDAtExp:
(ExpRow:
(Lab: isAbs)
(ATExp: (IDAtExp: (LongVId: isAbs)))
(ExpRow: (Lab: vol) (ATExp: (IDAtExp: (LongVId: vol))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10556))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: concat)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10558)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: p1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: p2)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: stripslash)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10557)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: path)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: substring)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: path)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (INTSCon: 0)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SOME)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: path)))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: path)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: isslash)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: sub)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: path)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: path)))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1))))))))))))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10557)))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Path)))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: false)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (SCONAtPat: (STRINGSCon: "")))
(FIELDPatRow: (Lab: |3|) (ATPat: (SCONAtPat: (STRINGSCon: ""))))))))
(ATExp: (IDAtExp: (LongVId: p2))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: false)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: v)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: path))))))))
(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: v)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: stripslash)))
(IDAtExp: (LongVId: path)))))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: slash)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: p2))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: true)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: v)))
(FIELDPatRow: (Lab: |3|) (ATPat: (SCONAtPat: (STRINGSCon: ""))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ^)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ^)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: v)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: volslash)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: p2))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: true)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: v)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: path))))))))
(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:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ^)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: v)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: volslash)))))))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: stripslash)))
(IDAtExp: (LongVId: path)))))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: slash)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: p2)))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitabsvolrest))) (IDAtExp: (LongVId: p1)))))))))))))
(PARAtExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: isAbsolute))) (IDAtExp: (LongVId: p2))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10558))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: getParent)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10560)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: p)))))
(ATExp:
(LETAtExp:
(SEQDec:
(OPENDec: (LongStrId: List-struct))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: isAbs)
(ATPat: (IDAtPat: (LongVId: isAbs)))
(FIELDPatRow:
(Lab: vol)
(ATPat: (IDAtPat: (LongVId: vol)))
(FIELDPatRow: (Lab: arcs) (ATPat: (IDAtPat: (LongVId: arcs))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: fromString))) (IDAtExp: (LongVId: p)))))))
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: getpar)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10559)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: xs)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rev)))
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: nil)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: "")))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: nil))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: isAbs))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: "")))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: revrest)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: revrest))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: ".")))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: revrest)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: revrest))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: "..")))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: revrest)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: revrest))))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: last)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: revrest)))))))))
(ATExp: (IDAtExp: (LongVId: revrest)))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: rev))) (IDAtExp: (LongVId: xs))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10559)))))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: nil)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toString)))
(RECORDAtExp:
(ExpRow:
(Lab: isAbs)
(ATExp: (IDAtExp: (LongVId: true)))
(ExpRow:
(Lab: vol)
(ATExp: (IDAtExp: (LongVId: vol)))
(ExpRow:
(Lab: arcs)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (STRINGSCon: "")))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))
(Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: currentArc)))))))))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: isAbs))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: arcs)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toString)))
(RECORDAtExp:
(ExpRow:
(Lab: isAbs)
(ATExp: (IDAtExp: (LongVId: isAbs)))
(ExpRow:
(Lab: vol)
(ATExp: (IDAtExp: (LongVId: vol)))
(ExpRow: (Lab: arcs) (ATExp: (IDAtExp: (LongVId: arcs))))))))))))))))
(PARAtExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: getpar))) (IDAtExp: (LongVId: arcs))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10560))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: mkCanonical)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10565)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: p)))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: isAbs)
(ATPat: (IDAtPat: (LongVId: isAbs)))
(FIELDPatRow:
(Lab: vol)
(ATPat: (IDAtPat: (LongVId: vol)))
(FIELDPatRow: (Lab: arcs) (ATPat: (IDAtPat: (LongVId: arcs))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: fromString))) (IDAtExp: (LongVId: p)))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: backup)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10561)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: nil)))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: nil))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: isAbs))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: "..")))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: res))))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))))))))
(ATExp: (IDAtExp: (LongVId: res))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10561)))))))))))))
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: reduce)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10564)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: arcs)))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: h)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10562)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10563)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: nil)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (STRINGSCon: "")))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: currentArc)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: isAbs))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: nil)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
(ATExp: (IDAtExp: (LongVId: res))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: "")))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ar)))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: ar)))))
(IDAtExp: (LongVId: res))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: ".")))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ar)))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: ar)))))
(IDAtExp: (LongVId: res))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (STRINGSCon: "..")))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ar)))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: ar)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: backup)))
(IDAtExp: (LongVId: res))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: a1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ar)))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: ar)))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: a1)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: res)))))))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10562)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10563))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: arcs)))))
(IDAtExp: (LongVId: nil))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10564)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toString)))
(RECORDAtExp:
(ExpRow:
(Lab: isAbs)
(ATExp: (IDAtExp: (LongVId: isAbs)))
(ExpRow:
(Lab: vol)
(ATExp: (IDAtExp: (LongVId: vol)))
(ExpRow:
(Lab: arcs)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.rev)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: reduce))) (IDAtExp: (LongVId: arcs)))))))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10565))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: parentize)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10566)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: nil))))) (ATExp: (IDAtExp: (LongVId: nil))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ar)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: parentArc)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: parentize))) (IDAtExp: (LongVId: ar)))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10566))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: mkRelative)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10569)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: p1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: p2)))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: isAbs) (ATPat: (IDAtPat: (LongVId: false))) (DOTSPatRow:))))))))
(RAISEExp: (ATExp: (IDAtExp: (LongVId: Path)))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: isAbs) (ATPat: (IDAtPat: (LongVId: false))) (DOTSPatRow:))))
(FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:))))))
(ATExp: (IDAtExp: (LongVId: p1))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: vol)
(ATPat: (IDAtPat: (LongVId: vol1)))
(FIELDPatRow: (Lab: arcs) (ATPat: (IDAtPat: (LongVId: arcs1))) (DOTSPatRow:)))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: vol)
(ATPat: (IDAtPat: (LongVId: vol2)))
(FIELDPatRow: (Lab: arcs) (ATPat: (IDAtPat: (LongVId: arcs2))) (DOTSPatRow:)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: h)))
(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: nil)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (STRINGSCon: ".")))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: a1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))
(ATExp: (IDAtExp: (LongVId: a1))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: nil)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: a2)))))))
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: parentize))) (IDAtExp: (LongVId: a2))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(ASPat:
(VId: a1)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: a11)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: a1r))))))))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ASPat:
(VId: a2)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: a21)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: a2r))))))))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: a1r)))))
(IDAtExp: (LongVId: a2r))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: @)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: parentize))) (IDAtExp: (LongVId: a2)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp: (IDAtExp: (LongVId: nil))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp: (IDAtExp: (LongVId: a1)))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: arcs1)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (STRINGSCon: "")))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: a11)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: a21)))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id10567)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10568))))))))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Path)))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toString)))
(RECORDAtExp:
(ExpRow:
(Lab: isAbs)
(ATExp: (IDAtExp: (LongVId: false)))
(ExpRow:
(Lab: vol)
(ATExp: (SCONAtExp: (STRINGSCon: "")))
(ExpRow:
(Lab: arcs)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: h))) (IDAtExp: (LongVId: arcs1)))))
(IDAtExp: (LongVId: arcs2))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <>)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: vol1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vol2))))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: fromString))) (IDAtExp: (LongVId: p1)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: fromString)))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: mkCanonical))) (IDAtExp: (LongVId: p2))))))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10569))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: mkAbsolute)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10570)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: p1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: p2)))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (RAISEExp: (ATExp: (IDAtExp: (LongVId: Path)))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: p1))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: mkCanonical)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: concat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: p2)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: p1)))))))))))))))))))
(PARAtExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: isAbsolute))) (IDAtExp: (LongVId: p1)))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: isRelative))) (IDAtExp: (LongVId: p2))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10570))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: isCanonical)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10571)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: p)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: mkCanonical))) (IDAtExp: (LongVId: p)))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: p))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10571))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: joinDirFile)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10572)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: dir)
(ATPat: (IDAtPat: (LongVId: dir)))
(FIELDPatRow: (Lab: file) (ATPat: (IDAtPat: (LongVId: file)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: concat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: dir)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: file))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10572))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: splitDirFile)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10573)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: p)))))
(ATExp:
(LETAtExp:
(SEQDec:
(OPENDec: (LongStrId: List-struct))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: isAbs)
(ATPat: (IDAtPat: (LongVId: isAbs)))
(FIELDPatRow:
(Lab: vol)
(ATPat: (IDAtPat: (LongVId: vol)))
(FIELDPatRow: (Lab: arcs) (ATPat: (IDAtPat: (LongVId: arcs))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: fromString))) (IDAtExp: (LongVId: p))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: nil)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: dir)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toString)))
(RECORDAtExp:
(ExpRow:
(Lab: isAbs)
(ATExp: (IDAtExp: (LongVId: isAbs)))
(ExpRow:
(Lab: vol)
(ATExp: (IDAtExp: (LongVId: vol)))
(ExpRow: (Lab: arcs) (ATExp: (IDAtExp: (LongVId: nil))))))))))
(ExpRow: (Lab: file) (ATExp: (SCONAtExp: (STRINGSCon: ""))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: arcn)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: farcs)))))))))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: dir)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toString)))
(RECORDAtExp:
(ExpRow:
(Lab: isAbs)
(ATExp: (IDAtExp: (LongVId: isAbs)))
(ExpRow:
(Lab: vol)
(ATExp: (IDAtExp: (LongVId: vol)))
(ExpRow:
(Lab: arcs)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: rev))) (IDAtExp: (LongVId: farcs))))))))))))
(ExpRow: (Lab: file) (ATExp: (IDAtExp: (LongVId: arcn)))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: rev))) (IDAtExp: (LongVId: arcs))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10573))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: dir)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10575)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: dir) (ATPat: (IDAtPat: (LongVId: _id10574))) (DOTSPatRow:))))
(ATExp: (IDAtExp: (LongVId: _id10574))))))))
(PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitDirFile))) (IDAtExp: (LongVId: s))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10575))))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: file)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10577)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: file) (ATPat: (IDAtPat: (LongVId: _id10576))) (DOTSPatRow:))))
(ATExp: (IDAtExp: (LongVId: _id10576))))))))
(PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitDirFile))) (IDAtExp: (LongVId: s))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10577))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: joinBaseExt)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10578)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: base)
(ATPat: (IDAtPat: (LongVId: base)))
(FIELDPatRow: (Lab: ext) (ATPat: (IDAtPat: (LongVId: NONE)))))))))
(ATExp: (IDAtExp: (LongVId: base))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: base)
(ATPat: (IDAtPat: (LongVId: base)))
(FIELDPatRow: (Lab: ext) (ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (SCONAtPat: (STRINGSCon: "")))))))))))
(ATExp: (IDAtExp: (LongVId: base))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: base)
(ATPat: (IDAtPat: (LongVId: base)))
(FIELDPatRow: (Lab: ext) (ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (IDAtPat: (LongVId: ex)))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ^)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ^)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: base)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: ".")))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: ex))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10578))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: splitBaseExt)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10579)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: dir)
(ATPat: (IDAtPat: (LongVId: dir)))
(FIELDPatRow: (Lab: file) (ATPat: (IDAtPat: (LongVId: file)))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitDirFile))) (IDAtExp: (LongVId: s)))))))
(SEQDec:
(OPENDec: (LongStrId: Substring-struct))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: fst)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: snd)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: splitr)))
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: c)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <>)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: c)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (CHARSCon: #\.))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: all))) (IDAtExp: (LongVId: file)))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: true)))
(ATExp:
(RECORDAtExp:
(ExpRow: (Lab: base) (ATExp: (IDAtExp: (LongVId: s))) (ExpRow: (Lab: ext) (ATExp: (IDAtExp: (LongVId: NONE))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: base)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: joinDirFile)))
(RECORDAtExp:
(ExpRow:
(Lab: dir)
(ATExp: (IDAtExp: (LongVId: dir)))
(ExpRow:
(Lab: file)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: string)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: trimr))) (SCONAtExp: (INTSCon: 1)))))
(IDAtExp: (LongVId: fst)))))))))))))))
(ExpRow:
(Lab: ext)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SOME)))
(PARAtExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: string))) (IDAtExp: (LongVId: snd)))))))))))))))))))
(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: (IDAtExp: (LongVId: true))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: false)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: size))) (IDAtExp: (LongVId: fst)))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: isEmpty))) (IDAtExp: (LongVId: fst)))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: isEmpty))) (IDAtExp: (LongVId: snd))))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10579))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: ext)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10581)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: ext) (ATPat: (IDAtPat: (LongVId: _id10580))) (DOTSPatRow:))))
(ATExp: (IDAtExp: (LongVId: _id10580))))))))
(PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitBaseExt))) (IDAtExp: (LongVId: s))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10581))))))))))))))))
(SEQStrDec:
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: base)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10583)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: base) (ATPat: (IDAtPat: (LongVId: _id10582))) (DOTSPatRow:))))
(ATExp: (IDAtExp: (LongVId: _id10582))))))))
(PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: splitBaseExt))) (IDAtExp: (LongVId: s))))))))))))))
(PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10583))))))))))))))))
(SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:)))))))
(IDSigExp: (SigId: Path-sig))))))))))