(module PPCore-struct (planet chongkai/sml) (#%module-begin (Program: (STRDECTopDec: (STRUCTUREStrDec: (StrBind: (StrId: PPCore-struct) (COLONStrExp: (STRUCTStrExp: (SEQStrDec: (DECStrDec: (OPENDec: (LongStrId: GrammarCore-struct))) (SEQStrDec: (DECStrDec: (OPENDec: (LongStrId: PPGrammar-struct))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppSCon))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: scon)))))))))))))) (ATExp: (LETAtExp: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: tag))) (APPExp: (ATExp: (PARAtExp: (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (CONPat: (LongVId: SCon.INT) (WILDCARDAtPat:)))) (ATExp: (SCONAtExp: (STRINGSCon: "INT")))) (Match: (Mrule: (ATPat: (PARAtPat: (CONPat: (LongVId: SCon.WORD) (WILDCARDAtPat:)))) (ATExp: (SCONAtExp: (STRINGSCon: "WORD")))) (Match: (Mrule: (ATPat: (PARAtPat: (CONPat: (LongVId: SCon.STRING) (WILDCARDAtPat:)))) (ATExp: (SCONAtExp: (STRINGSCon: "STRING")))) (Match: (Mrule: (ATPat: (PARAtPat: (CONPat: (LongVId: SCon.CHAR) (WILDCARDAtPat:)))) (ATExp: (SCONAtExp: (STRINGSCon: "CHAR")))) (Match: (Mrule: (ATPat: (PARAtPat: (CONPat: (LongVId: SCon.REAL) (WILDCARDAtPat:)))) (ATExp: (SCONAtExp: (STRINGSCon: "REAL")))))))))))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: scon))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppAtom))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ^))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: tag))) (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "SCon"))))))))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SCon.toString))) (IDAtExp: (LongVId: scon))))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppLab))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: lab)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppAtom))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "Lab"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Lab.toString))) (IDAtExp: (LongVId: lab))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppVId))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppAtom))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "VId"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: VId.toString))) (IDAtExp: (LongVId: vid))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppTyVar))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyvar)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppAtom))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "TyVar"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: TyVar.toString))) (IDAtExp: (LongVId: tyvar))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppTyCon))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tycon)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppAtom))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "TyCon"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: TyCon.toString))) (IDAtExp: (LongVId: tycon))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppStrId))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strid)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppAtom))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "StrId"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: StrId.toString))) (IDAtExp: (LongVId: strid))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppLongVId))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longvid)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppAtom))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "LongVId"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.toString))) (IDAtExp: (LongVId: longvid))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppLongTyCon))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longtycon)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppAtom))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "LongTyCon"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongTyCon.toString))) (IDAtExp: (LongVId: longtycon))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppLongStrId))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longstrid)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppAtom))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "LongStrId"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongStrId.toString))) (IDAtExp: (LongVId: longstrid))))))))))))))))))))) (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppAtExp))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: SCONAtExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: scon)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "SCONAtExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppSCon))))) (IDAtExp: (LongVId: scon))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: IDAtExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longvid))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "IDAtExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppLongVId))))) (IDAtExp: (LongVId: longvid))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: RECORDAtExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exprow_opt)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "RECORDAtExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppExpRow))))) (IDAtExp: (LongVId: exprow_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: LETAtExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: dec))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exp))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "LETAtExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppDec))))) (IDAtExp: (LongVId: dec))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: PARAtExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exp)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "PARAtExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: SEQAtExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exp1))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exp2))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "SEQAtExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp1))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppAtExp))))) (IDAtExp: (LongVId: exp2))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppExpRow))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: ExpRow) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: lab))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exp))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: exprow_opt)))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "ExpRow"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppLab))))) (IDAtExp: (LongVId: lab))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppExpRow))))) (IDAtExp: (LongVId: exprow_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppExp))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: ATExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atexp)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "ATExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppAtExp))))) (IDAtExp: (LongVId: atexp))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: APPExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exp))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: atexp))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "APPExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppAtExp))))) (IDAtExp: (LongVId: atexp))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: COLONExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exp))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: ty))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "COLONExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: HANDLEExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exp))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: match))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "HANDLEExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppMatch))))) (IDAtExp: (LongVId: match))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: RAISEExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exp)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "RAISEExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: FNExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: match)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "FNExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppMatch))))) (IDAtExp: (LongVId: match))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: IFExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exp1))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exp2))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: exp3)))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "IFExp"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp1))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp2))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp3))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppMatch))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: Match) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: mrule))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: match_opt))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "Match"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppMrule))))) (IDAtExp: (LongVId: mrule))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppMatch))))) (IDAtExp: (LongVId: match_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppMrule))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: Mrule) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: pat))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exp))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "Mrule"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppPat))))) (IDAtExp: (LongVId: pat))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppDec))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: VALDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyvarseq))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: valbind))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "VALDec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTyVarseq))))) (IDAtExp: (LongVId: tyvarseq))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppValBind))))) (IDAtExp: (LongVId: valbind))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: TYPEDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: typbind)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "TYPEDec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTypBind))))) (IDAtExp: (LongVId: typbind))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: DATATYPEDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: datbind)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "DATATYPEDec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppDatBind))))) (IDAtExp: (LongVId: datbind))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: DATATYPE2Dec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tycon))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longtycon))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "DATATYPE2Dec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTyCon))))) (IDAtExp: (LongVId: tycon))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppLongTyCon))))) (IDAtExp: (LongVId: longtycon))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: ABSTYPEDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: datbind))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: dec))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "ABSTYPEDec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppDatBind))))) (IDAtExp: (LongVId: datbind))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppDec))))) (IDAtExp: (LongVId: dec))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: EXCEPTIONDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exbind)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "EXCEPTIONDec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExBind))))) (IDAtExp: (LongVId: exbind))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: LOCALDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: dec1))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: dec2))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "LOCALDec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppDec))))) (IDAtExp: (LongVId: dec1))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppDec))))) (IDAtExp: (LongVId: dec2))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: OPENDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longstrids)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "OPENDec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subs))) (IDAtExp: (LongVId: ppLongStrId))))) (IDAtExp: (LongVId: longstrids))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: EMPTYDec) (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "EMPTYDec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: SEQDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: dec1))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: dec2))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "SEQDec"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppDec))))) (IDAtExp: (LongVId: dec1))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppDec))))) (IDAtExp: (LongVId: dec2))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppValBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: PLAINValBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: pat))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: exp))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: valbind_opt)))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "PLAINValBind"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppPat))))) (IDAtExp: (LongVId: pat))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppExp))))) (IDAtExp: (LongVId: exp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppValBind))))) (IDAtExp: (LongVId: valbind_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: RECValBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: valbind)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "RECValBind"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppValBind))))) (IDAtExp: (LongVId: valbind))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppTypBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: TypBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyvarseq))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: tycon))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: ty))) (FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: typbind_opt))))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "TypBind"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTyVarseq))))) (IDAtExp: (LongVId: tyvarseq))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTyCon))))) (IDAtExp: (LongVId: tycon))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTypBind))))) (IDAtExp: (LongVId: typbind_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppDatBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: DatBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyvarseq))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: tycon))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: conbind))) (FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: datbind_opt))))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "DatBind"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTyVarseq))))) (IDAtExp: (LongVId: tyvarseq))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTyCon))))) (IDAtExp: (LongVId: tycon))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppConBind))))) (IDAtExp: (LongVId: conbind))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppDatBind))))) (IDAtExp: (LongVId: datbind_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppConBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: ConBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: vid))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: ty_opt))) (FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: conbind_opt))))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "ConBind"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppVId))))) (IDAtExp: (LongVId: vid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty_opt))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppConBind))))) (IDAtExp: (LongVId: conbind_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppExBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: NEWExBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: vid))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: ty_opt))) (FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: exbind_opt))))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "NEWExBind"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppVId))))) (IDAtExp: (LongVId: vid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty_opt))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppExBind))))) (IDAtExp: (LongVId: exbind_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: EQUALExBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: vid))) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: longvid))) (FIELDPatRow: (Lab: |6|) (ATPat: (IDAtPat: (LongVId: exbind_opt)))))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "EQUALExBind"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppVId))))) (IDAtExp: (LongVId: vid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppLongVId))))) (IDAtExp: (LongVId: longvid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppExBind))))) (IDAtExp: (LongVId: exbind_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppAtPat))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: WILDCARDAtPat) (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "WILDCARDAtPat"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: SCONAtPat) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: scon)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "SCONAtPat"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppSCon))))) (IDAtExp: (LongVId: scon))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: IDAtPat) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longvid))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "IDAtPat"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppLongVId))))) (IDAtExp: (LongVId: longvid))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: RECORDAtPat) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: patrow_opt)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "RECORDAtPat"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppPatRow))))) (IDAtExp: (LongVId: patrow_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: PARAtPat) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: pat)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "PARAtPat"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppPat))))) (IDAtExp: (LongVId: pat))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppPatRow))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: DOTSPatRow) (PARAtPat: (ATPat: (IDAtPat: (LongVId: I)))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "DOTSPatRow"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: FIELDPatRow) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: lab))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: pat))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: patrow_opt)))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "FIELDPatRow"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppLab))))) (IDAtExp: (LongVId: lab))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppPat))))) (IDAtExp: (LongVId: pat))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppPatRow))))) (IDAtExp: (LongVId: patrow_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppPat))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: ATPat) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: atpat)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "ATPat"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppAtPat))))) (IDAtExp: (LongVId: atpat))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: CONPat) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longvid))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: atpat)))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "CONPat"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppLongVId))))) (IDAtExp: (LongVId: longvid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppAtPat))))) (IDAtExp: (LongVId: atpat))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: COLONPat) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: pat))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: ty))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "COLONPat"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppPat))))) (IDAtExp: (LongVId: pat))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: ASPat) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: vid))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: ty_opt))) (FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: pat))))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "ASPat"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppVId))))) (IDAtExp: (LongVId: vid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty_opt))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppPat))))) (IDAtExp: (LongVId: pat))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppTy))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: VARTy) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyvar)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "VARTy"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTyVar))))) (IDAtExp: (LongVId: tyvar))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: RECORDTy) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyrow_opt)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "RECORDTy"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTyRow))))) (IDAtExp: (LongVId: tyrow_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: CONTy) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyseq))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longtycon))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "CONTy"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTyseq))))) (IDAtExp: (LongVId: tyseq))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppLongTyCon))))) (IDAtExp: (LongVId: longtycon))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: ARROWTy) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ty1))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: ty2))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "ARROWTy"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty1))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty2))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: PARTy) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ty)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "PARTy"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppTyRow))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: TyRow) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: lab))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: ty))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: tyrow_opt)))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "TyRow"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppLab))))) (IDAtExp: (LongVId: lab))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: ty))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTyRow))))) (IDAtExp: (LongVId: tyrow_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppTyseq))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: Tyseq) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tys)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "Tyseq"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subs))) (IDAtExp: (LongVId: ppTy))))) (IDAtExp: (LongVId: tys))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppTyVarseq))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: out))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: i))) (FIELDPatRow: (Lab: |3|) (ATPat: (PARAtPat: (CONPat: (LongVId: TyVarseq) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: tyvars)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ppElem))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: out))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |3|) (ATExp: (SCONAtExp: (STRINGSCon: "TyVarseq"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subs))) (IDAtExp: (LongVId: ppTyVar))))) (IDAtExp: (LongVId: tyvars))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))))))))))))))))))))))))))))))))))) (IDSigExp: (SigId: PP_CORE-sig)))))))))