(module Infix-struct (planet chongkai/sml)
(#%module-begin
(Program:
(STRDECTopDec:
(STRUCTUREStrDec:
(StrBind:
(StrId: Infix-struct)
(SEALStrExp:
(STRUCTStrExp:
(SEQStrDec:
(DECStrDec: (OPENDec: (LongStrId: GrammarCore-struct)))
(SEQStrDec:
(DECStrDec: (OPENDec: (LongStrId: Error-struct)))
(SEQStrDec:
(DECStrDec: (DATATYPEDec: (DatBind: (TyVarseq:) (TyCon: Assoc-type) (ConBind: (VId: LEFT) (ConBind: (VId: RIGHT))))))
(SEQStrDec:
(DECStrDec:
(TYPEDec:
(TypBind:
(TyVarseq:)
(TyCon: InfStatus-type)
(RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Assoc-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type))))))))
(SEQStrDec:
(DECStrDec:
(TYPEDec:
(TypBind: (TyVarseq:) (TyCon: InfEnv-type) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: InfStatus-type))) (LongTyCon: VIdMap.map-type)))))
(SEQStrDec:
(DECStrDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: empty))) (ATExp: (IDAtExp: (LongVId: VIdMap.empty))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: assign)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: J)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: vids)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: infstatus))))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: insert)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: vid)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: J)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIdMap.insert)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: J)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: infstatus))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: List.foldl))) (IDAtExp: (LongVId: insert)))))
(IDAtExp: (LongVId: J)))))
(IDAtExp: (LongVId: vids))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: cancel)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: J))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vids)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: remove)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: vid)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: J)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIdMap.delete)))
(RECORDAtExp:
(ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: J))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vid)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: List.foldl))) (IDAtExp: (LongVId: remove)))))
(IDAtExp: (LongVId: J)))))
(IDAtExp: (LongVId: vids))))))))))))))
(SEQStrDec:
(DECStrDec:
(DATATYPEDec:
(DatBind:
(TyVarseq: (TyVar: |'a|))
(TyCon: FixityCategory-type)
(ConBind:
(VId: NONFIX)
(VARTy: (TyVar: |'a|))
(ConBind:
(VId: INFIX)
(RECORDTy:
(TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: InfStatus-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: VId-type))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: isInfix)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: J)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: longvid)))
(IFExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.isUnqualified))) (IDAtExp: (LongVId: longvid)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <>)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIdMap.find)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: J)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.toId))) (IDAtExp: (LongVId: longvid)))))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: NONE)))))))))
(ATExp: (IDAtExp: (LongVId: false))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: categoriseLongVId)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: J)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: atomic)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longvid)))))))))))
(IFExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.isUnqualified))) (IDAtExp: (LongVId: longvid)))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: vid)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.toId))) (IDAtExp: (LongVId: longvid)))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: NONE)))
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: NONFIX))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: atomic))))))))
(Match:
(Mrule:
(ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (IDAtPat: (LongVId: infstatus)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: INFIX)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: infstatus)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vid)))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: VIdMap.find)))
(RECORDAtExp:
(ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: J))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: vid)))))))))))))
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: NONFIX))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: atomic))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: categoriseAtExp)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id22)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id23)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: J)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ASPat:
(VId: atexp)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: IDAtExp)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: SANSOp)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longvid)))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: categoriseLongVId))) (IDAtExp: (LongVId: J)))))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: atexp)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: longvid))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: J)))
(FIELDPatRow: (Lab: |2|) (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: atexp)))))))))
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: NONFIX))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: atexp)))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id22)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id23)))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: categoriseAtPat)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id24)))
(FNExp:
(Match:
(Mrule:
(ATPat: (IDAtPat: (LongVId: _id25)))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: J)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(ASPat:
(VId: atpat)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: IDAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: SANSOp)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longvid)))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: categoriseLongVId))) (IDAtExp: (LongVId: J)))))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: atpat)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: longvid))))))))))
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: J)))
(FIELDPatRow: (Lab: |2|) (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: atpat)))))))))
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: NONFIX))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: atpat)))))))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: _id24)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id25)))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: parse)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: app)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: infapp)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: es))))))))))
(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: (PARAtPat: (CONPat: (LongVId: NONFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: e)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(ATExp: (IDAtExp: (LongVId: e))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: NONFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: e2)))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: NONFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: e1)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |s'|)))))))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: NONFIX)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: app)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: e1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: e2)))))))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |s'|)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: s)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: NONFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: e)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |i'|)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: NONFIX))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: e)))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: s)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |i'|))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ASPat:
(VId: s)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: NONFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: e)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil))))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: INFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: x)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |i'|)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: INFIX))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: x)))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: s)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |i'|))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: NONFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: e2)))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: INFIX)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat: (CONPat: (LongVId: NONFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: e1)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |s'|)))))))))))))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: NONFIX)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: infapp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: e1)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: e2))))))))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |s'|)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ASPat:
(VId: s)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: NONFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: e2)))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: INFIX)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: a1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: p1)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid1)))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat: (CONPat: (LongVId: NONFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: e1)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |s'|))))))))))))))))))))))
(FIELDPatRow:
(Lab: |2|)
(ASPat:
(VId: i)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: INFIX)
(PARAtPat:
(ASPat:
(VId: x2)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: a2)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: p2)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid2))))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: |i'|))))))))))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: >)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: p1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: p2)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: NONFIX)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: infapp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: e1)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid1)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: e2))))))))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |s'|)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i)))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: p1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: p2)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: INFIX))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: x2)))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: s)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |i'|)))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <>)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: a1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: a2)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Source.over)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: _id26))) (DOTSPatRow:))))
(ATExp: (IDAtExp: (LongVId: _id26))))))))
(IDAtExp: (LongVId: vid1)))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(RECORDAtPat:
(FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: _id27))) (DOTSPatRow:))))
(ATExp: (IDAtExp: (LongVId: _id27))))))))
(IDAtExp: (LongVId: vid2)))))))))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "conflicting infix associativity")))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: =)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: a1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: LEFT)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: NONFIX)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: infapp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: e1)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid1)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: e2))))))))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |s'|)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: INFIX))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: x2)))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: s)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |i'|))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: INFIX)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: s)))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: errorVId)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "misplaced infix identifier ")))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: vid)))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: INFIX) (PARAtPat: (ATPat: (IDAtPat: (LongVId: x)))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: s)))))))))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: INFIX)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: errorVId)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "misplaced infix identifier ")))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: vid)))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: nil)))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: INFIX)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i)))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: errorVId)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "misplaced infix identifier ")))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: vid)))))))))))
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (WILDCARDAtPat:))))
(RAISEExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Fail)))
(SCONAtExp: (STRINGSCon: "Infix.parse: inconsistency")))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: loop)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: nil)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: es))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: atExp)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: atexp)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ATExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtExp))) (IDAtExp: (LongVId: atexp)))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: atexp))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: appExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: atexp1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atexp2)))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: I1)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtExp))) (IDAtExp: (LongVId: atexp1)))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: I2)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtExp))) (IDAtExp: (LongVId: atexp2)))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: I)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Source.over)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: I2)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: PARAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: APPExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: atExp))) (IDAtExp: (LongVId: atexp1)))))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: atexp2)))))))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pairExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: atexp1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atexp2)))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: I1)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtExp))) (IDAtExp: (LongVId: atexp1)))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: I2)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtExp))) (IDAtExp: (LongVId: atexp2)))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: lab1)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I1)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Lab.fromInt))) (SCONAtExp: (INTSCon: 1)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: lab2)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I2)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Lab.fromInt))) (SCONAtExp: (INTSCon: 2)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: exprow2)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ExpRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I2)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: lab2)))
(ExpRow:
(Lab: |3|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: atExp))) (IDAtExp: (LongVId: atexp2)))))
(ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: NONE)))))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: exprow1)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ExpRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I1)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: lab1)))
(ExpRow:
(Lab: |3|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: atExp))) (IDAtExp: (LongVId: atexp1)))))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SOME))) (IDAtExp: (LongVId: exprow2))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: RECORDAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Source.over)))
(RECORDAtExp:
(ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I1))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: I2)))))))))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SOME))) (IDAtExp: (LongVId: exprow1))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: infExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: atexp1)))
(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: atexp2))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: longvid)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.fromId))) (IDAtExp: (LongVId: vid)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |atexp1'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: IDAtExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: SANSOp)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: longvid))))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |atexp2'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: pairExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: atexp1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: atexp2)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: appExp)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |atexp1'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |atexp2'|))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: parseExp)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: J)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atexps)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: atexp)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: parse)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: appExp)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: infExp)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.map)))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: categoriseAtExp))) (IDAtExp: (LongVId: J)))))))))
(IDAtExp: (LongVId: atexps))))))))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: atExp))) (IDAtExp: (LongVId: atexp))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: atPat)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: atpat)))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ATPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtPat))) (IDAtExp: (LongVId: atpat)))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: atpat))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: conPat)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: IDAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I1)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: op_opt)))
(FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longvid))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atpat)))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: I2)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtPat))) (IDAtExp: (LongVId: atpat)))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: I)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Source.over)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: I2))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: PARAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: CONPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: op_opt)))
(ExpRow:
(Lab: |3|)
(ATExp: (IDAtExp: (LongVId: longvid)))
(ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: atpat))))))))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atpat)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtPat))) (IDAtExp: (LongVId: atpat)))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "misplaced atomic pattern")))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: pairPat)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: atpat1)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atpat2)))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: I1)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtPat))) (IDAtExp: (LongVId: atpat1)))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: I2)))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoAtPat))) (IDAtExp: (LongVId: atpat2)))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: lab1)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I1)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Lab.fromInt))) (SCONAtExp: (INTSCon: 1)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: lab2)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I2)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Lab.fromInt))) (SCONAtExp: (INTSCon: 2)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: patrow2)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: FIELDPatRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I2)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: lab2)))
(ExpRow:
(Lab: |3|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: atPat))) (IDAtExp: (LongVId: atpat2)))))
(ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: NONE)))))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: patrow1)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: FIELDPatRow)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I1)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: lab1)))
(ExpRow:
(Lab: |3|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: atPat))) (IDAtExp: (LongVId: atpat1)))))
(ExpRow:
(Lab: |4|)
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: SOME))) (IDAtExp: (LongVId: patrow2))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: RECORDAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: Source.over)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: I2)))))))))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SOME))) (IDAtExp: (LongVId: patrow1))))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: infPat)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: atpat1)))
(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: atpat2))))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: longvid)))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.fromId))) (IDAtExp: (LongVId: vid)))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |atpat1'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: IDAtPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: SANSOp)))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: longvid))))))))))))
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: |atpat2'|)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: pairPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: atpat1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: atpat2)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: conPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |atpat1'|)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: |atpat2'|))))))))))))))))))
(SEQStrDec:
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: parsePat)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: J)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atpats)))))))))
(ATExp:
(LETAtExp:
(VALDec:
(TyVarseq:)
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: atpat)))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: parse)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: conPat)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: infPat)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.map)))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: categoriseAtPat))) (IDAtExp: (LongVId: J)))))))))
(IDAtExp: (LongVId: atpats))))))))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: atPat))) (IDAtExp: (LongVId: atpat))))))))))))))
(DECStrDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: parseFmrule)))
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: J)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atpats)))))))))
(ATExp:
(LETAtExp:
(SEQDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: checkNonfixity)))
(FNExp:
(Match:
(Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: nil))))) (ATExp: (IDAtExp: (LongVId: true))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: NONFIX) (WILDCARDAtPat:))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: t)))))))))))))
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: checkNonfixity))) (IDAtExp: (LongVId: t))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: INFIX)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: t)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: errorVId)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "misplaced infix identifier ")))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: vid))))))))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: maybeNonfixClause)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: ps)))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: IDAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: op_opt)))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longvid))))))))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: not)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LongVId.isUnqualified)))
(IDAtExp: (LongVId: longvid)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: errorLongVId)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "misplaced long identifier ")))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: longvid))))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: <)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: List.length))) (IDAtExp: (LongVId: atpats)))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 2)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "missing function arguments")))))))))
(ATExp:
(SEQAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: checkNonfixity))) (IDAtExp: (LongVId: ps)))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: op_opt)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LongVId.toId)))
(IDAtExp: (LongVId: longvid)))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.tl)))
(IDAtExp: (LongVId: atpats))))))))))))))))
(Match:
(Mrule:
(ATPat: (PARAtPat: (CONPat: (LongVId: WILDCARDAtPat) (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "misplaced wildcard pattern"))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: SCONAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "misplaced constant pattern"))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: RECORDAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "misplaced record or tuple pattern"))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: PARAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "misplaced parenthesised pattern"))))))))))))))))))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: List.hd))) (IDAtExp: (LongVId: atpats)))))))))))))
(SEQDec:
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: maybeParenthesisedInfixClause)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: ps)))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: NONFIX)
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: PARAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: CONPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: I)))
(FIELDPatRow:
(Lab: |2|)
(ATPat: (IDAtPat: (LongVId: SANSOp)))
(FIELDPatRow:
(Lab: |3|)
(ATPat:
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (IDAtPat: (LongVId: |I'|)))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longvid)))))))
(FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: atpat)))))))))))))))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: not)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LongVId.isUnqualified)))
(IDAtExp: (LongVId: longvid)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: errorLongVId)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp: (SCONAtExp: (STRINGSCon: "misplaced long identifier ")))
(ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: longvid))))))))))
(IFExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: not)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: isInfix))) (IDAtExp: (LongVId: J)))))
(IDAtExp: (LongVId: longvid)))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: I)))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "misplaced non-infix pattern")))))))))
(ATExp:
(SEQAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: checkNonfixity)))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: List.tl))) (IDAtExp: (LongVId: ps)))))))))
(PARAtExp:
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: SANSOp)))
(ExpRow:
(Lab: |2|)
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: |I'|)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: LongVId.toId)))
(IDAtExp: (LongVId: longvid)))))))))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: atpat)))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.tl)))
(IDAtExp: (LongVId: atpats))))))))))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: NONFIX)
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: PARAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ATPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow:
(Lab: |2|)
(ASPat:
(VId: atpat)
(ATPat:
(PARAtPat: (CONPat: (LongVId: PARAtPat) (WILDCARDAtPat:)))))))))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: maybeParenthesisedInfixClause)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: NONFIX)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: atpat)))))))
(ExpRow:
(Lab: |2|)
(ATExp:
(PARAtExp:
(APPExp: (ATExp: (IDAtExp: (LongVId: List.tl))) (IDAtExp: (LongVId: ps))))))))))))))))
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: NONFIX)
(PARAtPat:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: PARAtPat)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: pat)))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: error)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: infoPat))) (IDAtExp: (LongVId: pat)))))
(ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "misplaced non-infix pattern"))))))))))
(Match:
(Mrule:
(ATPat: (WILDCARDAtPat:))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: maybeNonfixClause)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: ps)))))))))))))))
(PARAtExp:
(ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: List.hd))) (IDAtExp: (LongVId: ps)))))))))))))
(VALDec:
(TyVarseq:)
(RECValBind:
(PLAINValBind:
(ATPat: (IDAtPat: (LongVId: maybePlainInfixClause)))
(FNExp:
(Match:
(Mrule:
(ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: ps)))))))
(APPExp:
(ATExp:
(PARAtExp:
(FNExp:
(Match:
(Mrule:
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: NONFIX) (IDAtPat: (LongVId: atpat1)))))
(FIELDPatRow:
(Lab: |2|)
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat:
(PARAtPat:
(CONPat:
(LongVId: INFIX)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (WILDCARDAtPat:))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))
(FIELDPatRow:
(Lab: |2|)
(CONPat:
(LongVId: ::)
(RECORDAtPat:
(FIELDPatRow:
(Lab: |1|)
(ATPat: (PARAtPat: (CONPat: (LongVId: NONFIX) (IDAtPat: (LongVId: atpat2)))))
(FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: nil)))))))))))))))))
(ATExp:
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: SANSOp)))
(ExpRow:
(Lab: |2|)
(ATExp: (IDAtExp: (LongVId: vid)))
(ExpRow:
(Lab: |3|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: ::)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: pairPat)))
(RECORDAtExp:
(ExpRow:
(Lab: |1|)
(ATExp: (IDAtExp: (LongVId: atpat1)))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: atpat2)))))))))
(ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))
(Match:
(Mrule:
(ATPat: (WILDCARDAtPat:))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: maybeParenthesisedInfixClause)))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: ps)))))))))))))
(PARAtExp: (ATExp: (IDAtExp: (LongVId: ps))))))))))))))
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: maybePlainInfixClause)))
(PARAtExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp:
(PARAtExp:
(APPExp:
(ATExp: (IDAtExp: (LongVId: List.map)))
(PARAtExp:
(ATExp:
(PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: categoriseAtPat))) (IDAtExp: (LongVId: J)))))))))
(IDAtExp: (LongVId: atpats)))))))))))))))))))))))))))))))))))))))))))
(IDSigExp: (SigId: INFIX-sig)))))))))