(module DerivedFormsCore-struct (planet chongkai/sml)
(#%module-begin
(Program:
(STRDECTopDec:
(STRUCTUREStrDec:
(StrBind:
(StrId: DerivedFormsCore-struct)
(SEALStrExp:
(STRUCTStrExp:
(SEQStrDec:
(STRUCTUREStrDec: (StrBind: (StrId: C-struct) (IDStrExp: (LongStrId: GrammarCore-struct))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Info-type) (CONTy: (Tyseq:) (LongTyCon: C.Info-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Lab-type) (CONTy: (Tyseq:) (LongTyCon: C.Lab-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: VId-type) (CONTy: (Tyseq:) (LongTyCon: C.VId-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Op-type) (CONTy: (Tyseq:) (LongTyCon: C.Op-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: AtExp-type) (CONTy: (Tyseq:) (LongTyCon: C.AtExp-type)))))
(SEQStrDec:
(DECStrDec:
(TYPEDec: (TypBind: (TyVarseq:) (TyCon: AppExp-type) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: C.AtExp-type))) (LongTyCon: list-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: InfExp-type) (CONTy: (Tyseq:) (LongTyCon: C.Exp-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Exp-type) (CONTy: (Tyseq:) (LongTyCon: C.Exp-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Match-type) (CONTy: (Tyseq:) (LongTyCon: C.Match-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Mrule-type) (CONTy: (Tyseq:) (LongTyCon: C.Mrule-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Dec-type) (CONTy: (Tyseq:) (LongTyCon: C.Dec-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: ValBind-type) (CONTy: (Tyseq:) (LongTyCon: C.ValBind-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: FvalBind-type) (CONTy: (Tyseq:) (LongTyCon: C.ValBind-type)))))
(SEQStrDec:
(DECStrDec:
(TYPEDec:
(TypBind:
(TyVarseq:)
(TyCon: Fmatch-type)
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: C.Match-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: C.VId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: int-type)))))))))
(SEQStrDec:
(DECStrDec:
(TYPEDec:
(TypBind:
(TyVarseq:)
(TyCon: Fmrule-type)
(RECORDTy:
(TyRow:
(Lab: |1|)
(CONTy: (Tyseq:) (LongTyCon: C.Mrule-type))
(TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: C.VId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: int-type)))))))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: TypBind-type) (CONTy: (Tyseq:) (LongTyCon: C.TypBind-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: DatBind-type) (CONTy: (Tyseq:) (LongTyCon: C.DatBind-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: AtPat-type) (CONTy: (Tyseq:) (LongTyCon: C.AtPat-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: PatRow-type) (CONTy: (Tyseq:) (LongTyCon: C.PatRow-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Pat-type) (CONTy: (Tyseq:) (LongTyCon: C.Pat-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Ty-type) (CONTy: (Tyseq:) (LongTyCon: C.Ty-type)))))
(SEQStrDec:
(DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: TyVarseq-type) (CONTy: (Tyseq:) (LongTyCon: C.TyVarseq-type)))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vidFALSE)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: VId.fromString))) (SCONAtExp: (STRINGSCon: "false"))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vidTRUE)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: VId.fromString))) (SCONAtExp: (STRINGSCon: "true"))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vidNIL)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: VId.fromString))) (SCONAtExp: (STRINGSCon: "nil"))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vidCONS)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: VId.fromString))) (SCONAtExp: (STRINGSCon: "::"))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: longvidCONS)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.fromId))) (IDAtExp: (LongVId: vidCONS))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: LONGVIDExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longvid)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.IDAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: C.SANSOp)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: longvid)))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: LONGVIDPat)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longvid)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.IDAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: C.SANSOp)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: longvid)))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: VIDAtExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.IDAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: C.SANSOp)))
(ExpRow:
(Lab: |3|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LongVId.fromId)))
(IDAtExp: (LongVId: vid)))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: VIDAtPat)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.IDAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: C.SANSOp)))
(ExpRow:
(Lab: |3|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LongVId.fromId)))
(IDAtExp: (LongVId: vid)))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: VIDExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LONGVIDExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LongVId.fromId)))
(IDAtExp: (LongVId: vid))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: VIDPat)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LONGVIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LongVId.fromId)))
(IDAtExp: (LongVId: vid))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: FALSEExp)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vidFALSE))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: TRUEExp)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vidTRUE))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: NILAtExp)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vidNIL))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: CONSExp)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vidCONS))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: FALSEPat)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vidFALSE))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: TRUEPat)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vidTRUE))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: NILAtPat)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vidNIL))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: findTyCon)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: tycon)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.TypBind)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: tyvarseq)))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |tycon'|)))))))
(FIELDPatRow:
(Lab: |4|)
(ATPat: (IDAtPat: (LongVId: ty)))
(FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: typbind_opt))))))))))))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |tycon'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: tycon)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SOME)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: tyvarseq)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: ty)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Option.mapPartial)))
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: typbind)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: findTyCon)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: tycon)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: typbind))))))))))))))))
(IDAtExp: (LongVId: typbind_opt)))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: replaceTy)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id7)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id8)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.TyVarseq)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyvars)))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.Tyseq)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tys)))))))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.VARTy)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: tyvar)))))))))))))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: loop)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |tyvar'|)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |tyvars'|)))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |ty'|)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |tys'|)))))))))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |tyvar'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: tyvar)))))))))
(ATExp: (IDAtExp: (LongVId: |ty'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |tyvars'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |tys'|)))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: nil)))
(FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Error.error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "unbound type variable"))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Error.error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp:
(SCONAtExp:
(STRINGSCon: "type sequence has wrong arity")))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: tyvars)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: tys))))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: tyvarseq_tyseq)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.RECORDTy)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyrow_opt)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECORDTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Option.map)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: replaceTyRow)))
(IDAtExp: (LongVId: tyvarseq_tyseq)))))))))
(IDAtExp: (LongVId: tyrow_opt))))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: tyvarseq_tyseq)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.CONTy)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |tyseq'|)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: tycon))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.CONTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: replaceTyseq)))
(IDAtExp: (LongVId: tyvarseq_tyseq)))))
(IDAtExp: (LongVId: |tyseq'|)))))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: tycon)))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: tyvarseq_tyseq)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.ARROWTy)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: ty1)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: ty2))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ARROWTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: replaceTy)))
(IDAtExp: (LongVId: tyvarseq_tyseq)))))
(IDAtExp: (LongVId: ty1)))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: replaceTy)))
(IDAtExp: (LongVId: tyvarseq_tyseq)))))
(IDAtExp: (LongVId: ty2)))))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: tyvarseq_tyseq)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.PARTy)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ty)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: replaceTy)))
(IDAtExp: (LongVId: tyvarseq_tyseq)))))
(IDAtExp: (LongVId: ty))))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id7)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id8)))))))))))))))
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: replaceTyRow)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: tyvarseq_tyseq)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.TyRow)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: lab)))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: ty)))
(FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: tyrow_opt)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.TyRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: lab)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: replaceTy)))
(IDAtExp: (LongVId: tyvarseq_tyseq)))))
(IDAtExp: (LongVId: ty)))))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Option.map)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: replaceTyRow)))
(IDAtExp: (LongVId: tyvarseq_tyseq)))))))))
(IDAtExp: (LongVId: tyrow_opt)))))))))))))))))))
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: replaceTyseq)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: tyvarseq_tyseq)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.Tyseq)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tys)))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Tyseq)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.map)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: replaceTy)))
(IDAtExp: (LongVId: tyvarseq_tyseq)))))))))
(IDAtExp: (LongVId: tys)))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: rewriteTy)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id9)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id10)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: typbind)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ASPat:
(VId: ty)
(ATPat: (PARAtPat: (CONPat: (LongVId: C.VARTy) (WILDCARDAtPat:)))))))))))
(ATExp: (IDAtExp: (LongVId: ty))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: typbind)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.RECORDTy)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: tyrow_opt)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECORDTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Option.map)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteTyRow)))
(IDAtExp: (LongVId: typbind)))))))))
(IDAtExp: (LongVId: tyrow_opt))))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: typbind)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.CONTy)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: tyseq)))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: longtycon))))))))))))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |tyseq'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteTyseq)))
(IDAtExp: (LongVId: typbind)))))
(IDAtExp: (LongVId: tyseq)))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: strids)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tycon)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LongTyCon.explode)))
(IDAtExp: (LongVId: longtycon))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: not)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.null)))
(IDAtExp: (LongVId: strids)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.CONTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: |tyseq'|)))
(ExpRow:
(Lab: |3|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: longtycon))))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: SOME)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |tyvarseq'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |ty'|)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: replaceTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |tyvarseq'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |tyseq'|)))))))))
(IDAtExp: (LongVId: |ty'|))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: NONE)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.CONTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: |tyseq'|)))
(ExpRow:
(Lab: |3|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: longtycon))))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: findTyCon)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: tycon)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: typbind)))))))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: typbind)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.ARROWTy)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: ty1)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: ty2))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ARROWTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteTy)))
(IDAtExp: (LongVId: typbind)))))
(IDAtExp: (LongVId: ty1)))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteTy)))
(IDAtExp: (LongVId: typbind)))))
(IDAtExp: (LongVId: ty2)))))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: typbind)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.PARTy)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ty)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteTy)))
(IDAtExp: (LongVId: typbind)))))
(IDAtExp: (LongVId: ty))))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id9)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10)))))))))))))))
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: rewriteTyRow)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: typbind)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.TyRow)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: lab)))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: ty)))
(FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: tyrow_opt)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.TyRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: lab)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteTy)))
(IDAtExp: (LongVId: typbind)))))
(IDAtExp: (LongVId: ty)))))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Option.map)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteTyRow)))
(IDAtExp: (LongVId: typbind)))))))))
(IDAtExp: (LongVId: tyrow_opt)))))))))))))))))))
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: rewriteTyseq)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: typbind)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.Tyseq)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tys)))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Tyseq)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.map)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteTy)))
(IDAtExp: (LongVId: typbind)))))))))
(IDAtExp: (LongVId: tys)))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: rewriteConBind)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: typbind)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.ConBind)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: op_opt)))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: vid)))
(FIELDPatRow:
(Lab: |4|)
(ATPat: (IDAtPat: (LongVId: ty_opt)))
(FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: conbind_opt))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ConBind)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: op_opt)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: vid)))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Option.map)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteTy)))
(IDAtExp: (LongVId: typbind)))))))))
(IDAtExp: (LongVId: ty_opt)))))
(ExpRow:
(Lab: |5|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Option.map)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteConBind)))
(IDAtExp: (LongVId: typbind)))))))))
(IDAtExp: (LongVId: conbind_opt))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: rewriteDatBind)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: typbind)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.DatBind)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: tyvarseq)))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tycon)))))))
(FIELDPatRow:
(Lab: |4|)
(ATPat: (IDAtPat: (LongVId: conbind)))
(FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: datbind_opt))))))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: NONE)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.DatBind)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: tyvarseq)))
(ExpRow:
(Lab: |3|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: tycon)))))))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteConBind)))
(IDAtExp: (LongVId: typbind)))))
(IDAtExp: (LongVId: conbind)))))
(ExpRow:
(Lab: |5|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Option.map)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteDatBind)))
(IDAtExp: (LongVId: typbind)))))))))
(IDAtExp: (LongVId: datbind_opt)))))))))))))))
(Match:
(Mrule:
(ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (WILDCARDAtPat:))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Error.error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp:
(SCONAtExp:
(STRINGSCon:
"duplicate type constructor in recursive type declaration")))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: findTyCon)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: tycon)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: typbind)))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: UNITAtPat)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECORDAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: NONE))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: TUPLEAtPat)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: pat)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: pat))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: pats)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: toPatRow)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: n)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(ATExp: (IDAtExp: (LongVId: NONE))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: n)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: pat)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |pats'|)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SOME)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FIELDPatRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.infoPat)))
(IDAtExp: (LongVId: pat)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Lab.fromInt)))
(IDAtExp: (LongVId: n)))))))))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: pat)))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toPatRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: |pats'|))))))))))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECORDAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toPatRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (INTSCon: 1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: pats)))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: LISTAtPat)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: NILAtPat)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: pats)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: toPatList)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: nil)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: NILAtPat)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: pat)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |pats'|)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.CONPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: C.SANSOp)))
(ExpRow:
(Lab: |3|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.infoPat)))
(IDAtExp: (LongVId: pat)))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: longvidCONS)))))))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: TUPLEAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: pat)))
(ExpRow:
(Lab: |2|)
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toPatList)))
(IDAtExp: (LongVId: |pats'|)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(IDAtExp: (LongVId: nil))))))))))))))))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toPatList)))
(IDAtExp: (LongVId: pats)))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: IDPatRow)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: ty_opt)))
(FIELDPatRow:
(Lab: |4|)
(ATPat: (IDAtPat: (LongVId: pat_opt)))
(FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: patrow_opt))))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: lab)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Lab.fromString)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VId.toString)))
(IDAtExp: (LongVId: vid)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vidPat)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vid)))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pat)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: NONE)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: NONE)))))))
(ATExp: (IDAtExp: (LongVId: vidPat))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (IDAtPat: (LongVId: ty)))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: NONE)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.COLONPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vidPat)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: ty)))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat: (CONPat: (LongVId: SOME) (IDAtPat: (LongVId: pat)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ASPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: C.SANSOp)))
(ExpRow:
(Lab: |3|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vid)))))))
(ExpRow:
(Lab: |4|)
(ATExp: (IDAtExp: (LongVId: ty_opt)))
(ExpRow:
(Lab: |5|)
(ATExp: (IDAtExp: (LongVId: pat)))))))))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: ty_opt)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: pat_opt)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FIELDPatRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: lab)))))))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: pat)))
(ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: patrow_opt))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: UNITAtExp)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECORDAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: NONE))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: TUPLEAtExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: exp)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: exp))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exps)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: toExpRow)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: n)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(ATExp: (IDAtExp: (LongVId: NONE))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: n)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: exp)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |exps'|)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SOME)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ExpRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.infoExp)))
(IDAtExp: (LongVId: exp)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Lab.fromInt)))
(IDAtExp: (LongVId: n)))))))))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: exp)))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toExpRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (INTSCon: 1)))))))))
(ExpRow:
(Lab: |2|)
(ATExp:
(IDAtExp: (LongVId: |exps'|))))))))))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECORDAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toExpRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (INTSCon: 1)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: exps)))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: HASHAtExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: lab)))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vid)))
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: VId.invent))) (RECORDAtExp:))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: dots)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.DOTSPatRow)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I)))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: patrow)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FIELDPatRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: lab)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vid)))))))))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SOME)))
(IDAtExp: (LongVId: dots)))))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pat)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECORDAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SOME)))
(IDAtExp: (LongVId: patrow)))))))))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: mrule)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Mrule)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pat)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid))))))))))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: match)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Match)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: mrule)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: NONE)))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FNExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: match))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: CASEExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: exp)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: match))))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: function)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FNExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: match)))))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.APPExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: function)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: exp)))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: IFExp)))
(ATExp: (IDAtExp: (LongVId: C.IFExp))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: ORELSEExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: exp1)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exp2))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: IFExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: exp1)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: TRUEExp)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I)))))))
(ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: exp2))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: ANDALSOExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: exp1)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exp2))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: IFExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: exp1)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: exp2)))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: FALSEExp)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: SEQAtExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: exp)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: exp))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: exp)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |exps'|)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.SEQAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: exp)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SEQAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: |exps'|))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: LETAtExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: dec)))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: exp)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: nil))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.LETAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: dec)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: exp)))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: dec)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exps))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.LETAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: dec)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SEQAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: exps))))))))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: WHILEExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: exp1)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exp2))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vid)))
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: VId.invent))) (RECORDAtExp:))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vidExp)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vid)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: unitAtExp)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: UNITAtExp)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I)))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: unitExp)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: unitAtExp)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: callVid)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.APPExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vidExp)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: unitAtExp))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: seqExp)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SEQAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: exp2)))
(ExpRow:
(Lab: |2|)
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: callVid)))
(ExpRow:
(Lab: |2|)
(ATExp:
(IDAtExp:
(LongVId: nil)))))))))))))))))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: fnBody)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: IFExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: exp1)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: seqExp)))
(ExpRow:
(Lab: |4|)
(ATExp: (IDAtExp: (LongVId: unitExp)))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: mrule)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Mrule)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: UNITAtPat)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I)))))))))))))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: fnBody))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: match)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Match)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: mrule)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: NONE))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: fnExp)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FNExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: match)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: fnBind)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PLAINValBind)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))))))))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: fnExp)))
(ExpRow:
(Lab: |4|)
(ATExp: (IDAtExp: (LongVId: NONE)))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: valbind)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECValBind)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: fnBind)))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: dec)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.VALDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.TyVarseq)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: nil)))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(IDAtExp: (LongVId: valbind))))))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.LETAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: dec)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: callVid)))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: LISTAtExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: NILAtExp)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exps)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: toExpList)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: nil)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: NILAtExp)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: exp)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |exps'|)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.APPExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: CONSExp)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: I)))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: TUPLEAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: exp)))
(ExpRow:
(Lab: |2|)
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toExpList)))
(IDAtExp: (LongVId: |exps'|)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(IDAtExp:
(LongVId:
nil)))))))))))))))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PARAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toExpList)))
(IDAtExp: (LongVId: exps)))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: TUPLETy)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: ty)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: nil)))))))))))))))
(ATExp: (IDAtExp: (LongVId: ty))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tys)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: toTyRow)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: n)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(ATExp: (IDAtExp: (LongVId: NONE))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: n)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: ty)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |tys'|)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SOME)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.TyRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.infoTy)))
(IDAtExp: (LongVId: ty)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Lab.fromInt)))
(IDAtExp: (LongVId: n)))))))))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: ty)))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toTyRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: +)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (INTSCon: 1)))))))))
(ExpRow:
(Lab: |2|)
(ATExp:
(IDAtExp:
(LongVId: |tys'|))))))))))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECORDTy)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: toTyRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (SCONAtExp: (INTSCon: 1)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: tys)))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: FvalBind)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: match)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: arity))))))))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: fvalbind_opt))))))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.Match)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.Mrule)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: pat)))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: exp))))))))))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: NONE))))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: arity)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: patrow)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.ATPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.RECORDAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: SOME)
(IDAtPat: (LongVId: patrow)))))))))))))))))
(ATExp: (IDAtExp: (LongVId: patrow))))
(Match:
(Mrule:
(ATPat: (WILDCARDAtPat:))
(RAISEExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Fail)))
(SCONAtExp:
(STRINGSCon:
"DerivedFormsCore.FvalBind: can't extract patrow"))))))))))))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: pat)))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: abstract)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.FIELDPatRow)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: pat)))
(FIELDPatRow:
(Lab: |4|)
(ATPat: (IDAtPat: (LongVId: NONE)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FNExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Match)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Mrule)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pat)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: exp))))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(IDAtExp: (LongVId: NONE)))))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.FIELDPatRow)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: pat)))
(FIELDPatRow:
(Lab: |4|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: SOME)
(IDAtPat: (LongVId: row)))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FNExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Match)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Mrule)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pat)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(IDAtExp: (LongVId: abstract)))
(IDAtExp: (LongVId: row))))))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(IDAtExp: (LongVId: NONE)))))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: C.DOTSPatRow)
(WILDCARDAtPat:))))))))
(RAISEExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Fail)))
(SCONAtExp:
(STRINGSCon:
"DerivedFormsCore.FvalBind: DOTSPatRow used as function argument"))))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pat2)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: exp2)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: abstract)))
(IDAtExp: (LongVId: patrow))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PLAINValBind)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pat2)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: exp2)))
(ExpRow:
(Lab: |4|)
(ATExp: (IDAtExp: (LongVId: fvalbind_opt)))))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pat2)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: exp2)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FNExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Match)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Mrule)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pat)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: exp))))))))))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: NONE)))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PLAINValBind)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pat2)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: exp2)))
(ExpRow:
(Lab: |4|)
(ATExp: (IDAtExp: (LongVId: fvalbind_opt)))))))))))))))
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: match)))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: arity)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1)))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: abstract)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (SCONAtPat: (INTSCon: 0)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: vidExps)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: exp)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: TUPLEAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.rev)))
(IDAtExp:
(LongVId: vidExps)))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: CASEExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: exp)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: match)))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: n)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: vidExps)))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vid)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VId.invent)))
(RECORDAtExp:))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: exp)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pat)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: mrule)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Mrule)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pat)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: abstract)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: -)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: n)))
(ExpRow:
(Lab: |2|)
(ATExp:
(SCONAtExp: (INTSCon: 1)))))))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: exp)))
(ExpRow:
(Lab: |2|)
(ATExp:
(IDAtExp:
(LongVId:
vidExps)))))))))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FNExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Match)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: mrule)))
(ExpRow:
(Lab: |3|)
(ATExp:
(IDAtExp:
(LongVId: NONE)))))))))))))))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: exp)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: abstract)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: arity)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: nil)))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pat)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PLAINValBind)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pat)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: exp)))
(ExpRow:
(Lab: |4|)
(ATExp: (IDAtExp: (LongVId: fvalbind_opt)))))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pat2)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIDPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: exp2)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.FNExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: match))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.PLAINValBind)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pat2)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: exp2)))
(ExpRow:
(Lab: |4|)
(ATExp: (IDAtExp: (LongVId: fvalbind_opt))))))))))))))))))))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: match))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: Fmatch)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: mrule)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: vid)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: arity))))))))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: NONE))))))))))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Match)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: mrule)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: NONE))))))))))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: arity)))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: mrule)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: arity))))))))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: SOME)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: match)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: |vid'|)))))))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: |arity'|)))))))))))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <>)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: vid)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |vid'|)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Error.error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(SCONAtExp: (STRINGSCon: "inconsistent function identifier")))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <>)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: arity)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |arity'|)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Error.error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(SCONAtExp: (STRINGSCon: "inconsistent function arity")))))))))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Match)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: mrule)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: SOME)))
(IDAtExp: (LongVId: match))))))))))))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vid)))))))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: arity))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: Fmrule)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: vid)))
(FIELDPatRow:
(Lab: |4|)
(ATPat: (IDAtPat: (LongVId: atpats)))
(FIELDPatRow:
(Lab: |5|)
(ATPat: (IDAtPat: (LongVId: ty_opt)))
(FIELDPatRow:
(Lab: |6|)
(ATPat: (IDAtPat: (LongVId: exp)))))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pats)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.map)))
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: atpat)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: atpat))))))))))))))))
(IDAtExp: (LongVId: atpats)))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |pat'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ATPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: TUPLEAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: pats)))))))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |exp'|)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: NONE)))
(ATExp: (IDAtExp: (LongVId: exp))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat: (LongVId: SOME) (IDAtPat: (LongVId: ty)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.COLONExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: exp)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: ty))))))))))))))))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: ty_opt)))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: arity)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.length)))
(IDAtExp: (LongVId: atpats))))))))))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.Mrule)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: |pat'|)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: |exp'|))))))))))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: arity)))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: FUNDec)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: tyvarseq)))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: fvalbind))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.VALDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: tyvarseq)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.RECValBind)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: fvalbind)))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: DATATYPEDec)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: datbind)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: NONE))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.DATATYPEDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: datbind))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: datbind)))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(PARAtPat:
(CONPat: (LongVId: SOME) (IDAtPat: (LongVId: typbind))))))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |datbind'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteDatBind)))
(IDAtExp: (LongVId: typbind)))))
(IDAtExp: (LongVId: datbind)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.SEQDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.DATATYPEDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.infoDatBind)))
(IDAtExp: (LongVId: datbind)))))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: |datbind'|)))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.TYPEDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.infoTypBind)))
(IDAtExp: (LongVId: typbind)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(IDAtExp: (LongVId: typbind))))))))))))))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: ABSTYPEDec)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: datbind)))
(FIELDPatRow:
(Lab: |3|)
(ATPat: (IDAtPat: (LongVId: NONE)))
(FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: dec)))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ABSTYPEDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: datbind)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: dec)))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: datbind)))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(PARAtPat:
(CONPat: (LongVId: SOME) (IDAtPat: (LongVId: typbind)))))
(FIELDPatRow:
(Lab: |4|)
(ATPat: (IDAtPat: (LongVId: dec)))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |I'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.infoTypBind)))
(IDAtExp: (LongVId: typbind)))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |datbind'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: rewriteDatBind)))
(IDAtExp: (LongVId: typbind)))))
(IDAtExp: (LongVId: datbind))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.ABSTYPEDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: |datbind'|)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.SEQDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: C.TYPEDec)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: typbind)))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(IDAtExp:
(LongVId:
dec)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
(IDSigExp: (SigId: DERIVED_FORMS_CORE-sig)))))))))