(module PPModule-struct (planet chongkai/sml) (#%module-begin (Program: (STRDECTopDec: (STRUCTUREStrDec: (StrBind: (StrId: PPModule-struct) (COLONStrExp: (STRUCTStrExp: (SEQStrDec: (DECStrDec: (OPENDec: (LongStrId: GrammarModule-struct))) (SEQStrDec: (DECStrDec: (OPENDec: (LongStrId: PPGrammar-struct))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppSigId))) (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: sigid)))))))))))))) (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: "SigId"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SigId.toString))) (IDAtExp: (LongVId: sigid))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppFunId))) (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: funid)))))))))))))) (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: "FunId"))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |5|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: FunId.toString))) (IDAtExp: (LongVId: funid))))))))))))))))))))) (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppStrExp))) (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: STRUCTStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strdec)))))))))))))))) (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: "STRUCTStrExp"))) (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: ppStrDec))))) (IDAtExp: (LongVId: strdec))))) (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: IDStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longstrid)))))))))))))))) (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: "IDStrExp"))) (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: PPCore.ppLongStrId))))) (IDAtExp: (LongVId: longstrid))))) (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: COLONStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strexp))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: sigexp))))))))))))))))) (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: "COLONStrExp"))) (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: ppStrExp))))) (IDAtExp: (LongVId: strexp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppSigExp))))) (IDAtExp: (LongVId: sigexp))))) (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: SEALStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strexp))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: sigexp))))))))))))))))) (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: "SEALStrExp"))) (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: ppStrExp))))) (IDAtExp: (LongVId: strexp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppSigExp))))) (IDAtExp: (LongVId: sigexp))))) (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: APPStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: funid))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: strexp))))))))))))))))) (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: "APPStrExp"))) (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: ppFunId))))) (IDAtExp: (LongVId: funid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppStrExp))))) (IDAtExp: (LongVId: strexp))))) (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: LETStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strdec))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: strexp))))))))))))))))) (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: "LETStrExp"))) (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: ppStrDec))))) (IDAtExp: (LongVId: strdec))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppStrExp))))) (IDAtExp: (LongVId: strexp))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppStrDec))) (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: DECStrDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (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: "DECStrDec"))) (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: PPCore.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: STRUCTUREStrDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strbind)))))))))))))))) (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: "STRUCTUREStrDec"))) (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: ppStrBind))))) (IDAtExp: (LongVId: strbind))))) (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: LOCALStrDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strdec1))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: strdec2))))))))))))))))) (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: "LOCALStrDec"))) (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: ppStrDec))))) (IDAtExp: (LongVId: strdec1))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppStrDec))))) (IDAtExp: (LongVId: strdec2))))) (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: EMPTYStrDec) (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: "EMPTYStrDec"))) (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: SEQStrDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strdec1))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: strdec2))))))))))))))))) (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: "SEQStrDec"))) (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: ppStrDec))))) (IDAtExp: (LongVId: strdec1))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppStrDec))))) (IDAtExp: (LongVId: strdec2))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppStrBind))) (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: StrBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strid))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: strexp))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: strbind_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: "StrBind"))) (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: PPCore.ppStrId))))) (IDAtExp: (LongVId: strid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppStrExp))))) (IDAtExp: (LongVId: strexp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppStrBind))))) (IDAtExp: (LongVId: strbind_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppSigExp))) (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: SIGSigExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: spec)))))))))))))))) (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: "SIGSigExp"))) (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: ppSpec))))) (IDAtExp: (LongVId: spec))))) (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: IDSigExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: sigid)))))))))))))))) (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: "IDSigExp"))) (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: ppSigId))))) (IDAtExp: (LongVId: sigid))))) (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: WHERETYPESigExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: sigexp))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: tyvarseq))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: longtycon))) (FIELDPatRow: (Lab: |5|) (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: "WHERETYPESigExp"))) (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: ppSigExp))))) (IDAtExp: (LongVId: sigexp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: PPCore.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: PPCore.ppLongTyCon))))) (IDAtExp: (LongVId: longtycon))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: PPCore.ppTy))))) (IDAtExp: (LongVId: ty))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppSigDec))) (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: SigDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: sigbind)))))))))))))))) (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: "SigDec"))) (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: ppSigBind))))) (IDAtExp: (LongVId: sigbind))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppSigBind))) (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: SigBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: sigid))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: sigexp))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: sigbind_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: "SigBind"))) (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: ppSigId))))) (IDAtExp: (LongVId: sigid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppSigExp))))) (IDAtExp: (LongVId: sigexp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppSigBind))))) (IDAtExp: (LongVId: sigbind_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppSpec))) (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: VALSpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: valdesc)))))))))))))))) (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: "VALSpec"))) (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: ppValDesc))))) (IDAtExp: (LongVId: valdesc))))) (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: TYPESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: typdesc)))))))))))))))) (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: "TYPESpec"))) (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: ppTypDesc))))) (IDAtExp: (LongVId: typdesc))))) (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: EQTYPESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: typdesc)))))))))))))))) (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: "EQTYPESpec"))) (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: ppTypDesc))))) (IDAtExp: (LongVId: typdesc))))) (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: DATATYPESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: datdesc)))))))))))))))) (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: "DATATYPESpec"))) (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: ppDatDesc))))) (IDAtExp: (LongVId: datdesc))))) (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: DATATYPE2Spec) (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: "DATATYPE2Spec"))) (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: PPCore.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: PPCore.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: EXCEPTIONSpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exdesc)))))))))))))))) (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: "EXCEPTIONSpec"))) (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: ppExDesc))))) (IDAtExp: (LongVId: exdesc))))) (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: STRUCTURESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strdesc)))))))))))))))) (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: "STRUCTURESpec"))) (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: ppStrDesc))))) (IDAtExp: (LongVId: strdesc))))) (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: INCLUDESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: sigexp)))))))))))))))) (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: "INCLUDESpec"))) (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: ppSigExp))))) (IDAtExp: (LongVId: sigexp))))) (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: EMPTYSpec) (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: "EMPTYSpec"))) (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: SEQSpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: spec1))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: spec2))))))))))))))))) (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: "SEQSpec"))) (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: ppSpec))))) (IDAtExp: (LongVId: spec1))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppSpec))))) (IDAtExp: (LongVId: spec2))))) (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: SHARINGTYPESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: spec))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longtycons))))))))))))))))) (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: "SHARINGTYPESpec"))) (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: ppSpec))))) (IDAtExp: (LongVId: spec))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subs))) (IDAtExp: (LongVId: PPCore.ppLongTyCon))))) (IDAtExp: (LongVId: longtycons))))) (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: SHARINGSpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: spec))) (FIELDPatRow: (Lab: |3|) (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: "SHARINGSpec"))) (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: ppSpec))))) (IDAtExp: (LongVId: spec))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subs))) (IDAtExp: (LongVId: PPCore.ppLongStrId))))) (IDAtExp: (LongVId: longstrids))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil)))))))))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppValDesc))) (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: ValDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: ty))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: valdesc_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: "ValDesc"))) (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: PPCore.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: PPCore.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: ppValDesc))))) (IDAtExp: (LongVId: valdesc_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppTypDesc))) (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: TypDesc) (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: typdesc_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: "TypDec"))) (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: PPCore.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: PPCore.ppTyCon))))) (IDAtExp: (LongVId: tycon))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTypDesc))))) (IDAtExp: (LongVId: typdesc_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppDatDesc))) (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: DatDesc) (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: condesc))) (FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: datdesc_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: "DatDesc"))) (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: PPCore.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: PPCore.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: ppConDesc))))) (IDAtExp: (LongVId: condesc))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppDatDesc))))) (IDAtExp: (LongVId: datdesc_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppConDesc))) (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: ConDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: ty_opt))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: condesc_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: "ConDesc"))) (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: PPCore.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: PPCore.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: ppConDesc))))) (IDAtExp: (LongVId: condesc_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppExDesc))) (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: ExDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: vid))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: ty_opt))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: exdesc_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: "ExDesc"))) (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: PPCore.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: PPCore.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: ppExDesc))))) (IDAtExp: (LongVId: exdesc_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppStrDesc))) (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: StrDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strid))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: sigexp))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: strdesc_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: "StrDesc"))) (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: PPCore.ppStrId))))) (IDAtExp: (LongVId: strid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppSigExp))))) (IDAtExp: (LongVId: sigexp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppStrDesc))))) (IDAtExp: (LongVId: strdesc_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppFunDec))) (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: FunDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: funbind)))))))))))))))) (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: "FunDec"))) (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: ppFunBind))))) (IDAtExp: (LongVId: funbind))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppFunBind))) (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: FunBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: funid))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: strid))) (FIELDPatRow: (Lab: |4|) (ATPat: (IDAtPat: (LongVId: sigexp))) (FIELDPatRow: (Lab: |5|) (ATPat: (IDAtPat: (LongVId: strexp))) (FIELDPatRow: (Lab: |6|) (ATPat: (IDAtPat: (LongVId: funbind_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: "FunBind"))) (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: ppFunId))))) (IDAtExp: (LongVId: funid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: PPCore.ppStrId))))) (IDAtExp: (LongVId: strid))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppSigExp))))) (IDAtExp: (LongVId: sigexp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: sub))) (IDAtExp: (LongVId: ppStrExp))))) (IDAtExp: (LongVId: strexp))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppFunBind))))) (IDAtExp: (LongVId: funbind_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))))))))))) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: ppTopDec))) (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: STRDECTopDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: strdec))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: topdec_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: "STRDECTopDec"))) (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: ppStrDec))))) (IDAtExp: (LongVId: strdec))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTopDec))))) (IDAtExp: (LongVId: topdec_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: SIGDECTopDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: sigdec))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: topdec_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: "SIGDECTopDec"))) (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: ppSigDec))))) (IDAtExp: (LongVId: sigdec))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTopDec))))) (IDAtExp: (LongVId: topdec_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: FUNDECTopDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: fundec))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: topdec_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: "FUNDECTopDec"))) (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: ppFunDec))))) (IDAtExp: (LongVId: fundec))))) (ExpRow: (Lab: |2|) (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: subo))) (IDAtExp: (LongVId: ppTopDec))))) (IDAtExp: (LongVId: topdec_opt))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))))))))))))))))))))))))))))))))))))) (IDSigExp: (SigId: PP_MODULE-sig)))))))))