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