(module GrammarModuleFn-functor (planet chongkai/sml) (#%module-begin (Program: (FUNDECTopDec: (FunDec: (FunBind: (FunId: GrammarModuleFn-functor) (StrId: _id19-struct) (SIGSigExp: (SEQSpec: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Info-type))) (STRUCTURESpec: (StrDesc: (StrId: Core-struct) (IDSigExp: (SigId: GRAMMAR_CORE-sig)))))) (LETStrExp: (DECStrDec: (OPENDec: (LongStrId: _id19-struct))) (COLONStrExp: (STRUCTStrExp: (SEQStrDec: (STRUCTUREStrDec: (StrBind: (StrId: Core-struct) (IDStrExp: (LongStrId: Core-struct)))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Info-type) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQStrDec: (DECStrDec: (OPENDec: (LongStrId: Core-struct))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: SigId-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigId.Id-type)))))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: FunId-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: FunId.Id-type)))))))) (SEQStrDec: (DECStrDec: (DATATYPEDec: (DatBind: (TyVarseq:) (TyCon: StrExp-type) (ConBind: (VId: STRUCTStrExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrDec-type))))) (ConBind: (VId: IDStrExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: longStrId-type))))) (ConBind: (VId: COLONStrExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrExp-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: SigExp-type)))))) (ConBind: (VId: SEALStrExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrExp-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: SigExp-type)))))) (ConBind: (VId: APPStrExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: FunId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: StrExp-type)))))) (ConBind: (VId: LETStrExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrDec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: StrExp-type)))))))))))) (DatBind: (TyVarseq:) (TyCon: StrDec-type) (ConBind: (VId: DECStrDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Dec-type))))) (ConBind: (VId: STRUCTUREStrDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrBind-type))))) (ConBind: (VId: LOCALStrDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrDec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: StrDec-type)))))) (ConBind: (VId: EMPTYStrDec) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (ConBind: (VId: SEQStrDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrDec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: StrDec-type))))))))))) (DatBind: (TyVarseq:) (TyCon: StrBind-type) (ConBind: (VId: StrBind) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: StrExp-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: StrBind-type))) (LongTyCon: option-type)))))))) (DatBind: (TyVarseq:) (TyCon: SigExp-type) (ConBind: (VId: SIGSigExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Spec-type))))) (ConBind: (VId: IDSigExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigId-type))))) (ConBind: (VId: WHERETYPESigExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigExp-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: TyVarseq-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq:) (LongTyCon: longTyCon-type)) (TyRow: (Lab: |5|) (CONTy: (Tyseq:) (LongTyCon: Ty-type))))))))))) (DatBind: (TyVarseq:) (TyCon: SigDec-type) (ConBind: (VId: SigDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigBind-type)))))) (DatBind: (TyVarseq:) (TyCon: SigBind-type) (ConBind: (VId: SigBind) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: SigExp-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: SigBind-type))) (LongTyCon: option-type)))))))) (DatBind: (TyVarseq:) (TyCon: Spec-type) (ConBind: (VId: VALSpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: ValDesc-type))))) (ConBind: (VId: TYPESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TypDesc-type))))) (ConBind: (VId: EQTYPESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TypDesc-type))))) (ConBind: (VId: DATATYPESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: DatDesc-type))))) (ConBind: (VId: DATATYPE2Spec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TyCon-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: longTyCon-type)))))) (ConBind: (VId: EXCEPTIONSpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: ExDesc-type))))) (ConBind: (VId: STRUCTURESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrDesc-type))))) (ConBind: (VId: INCLUDESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigExp-type))))) (ConBind: (VId: EMPTYSpec) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (ConBind: (VId: SEQSpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Spec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Spec-type)))))) (ConBind: (VId: SHARINGTYPESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Spec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: longTyCon-type))) (LongTyCon: list-type)))))) (ConBind: (VId: SHARINGSpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Spec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: longStrId-type))) (LongTyCon: list-type)))))))))))))))))) (DatBind: (TyVarseq:) (TyCon: ValDesc-type) (ConBind: (VId: ValDesc) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: VId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Ty-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: ValDesc-type))) (LongTyCon: option-type)))))))) (DatBind: (TyVarseq:) (TyCon: TypDesc-type) (ConBind: (VId: TypDesc) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TyVarseq-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: TyCon-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: TypDesc-type))) (LongTyCon: option-type)))))))) (DatBind: (TyVarseq:) (TyCon: DatDesc-type) (ConBind: (VId: DatDesc) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TyVarseq-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: TyCon-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq:) (LongTyCon: ConDesc-type)) (TyRow: (Lab: |5|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: DatDesc-type))) (LongTyCon: option-type))))))))) (DatBind: (TyVarseq:) (TyCon: ConDesc-type) (ConBind: (VId: ConDesc) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: VId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: Ty-type))) (LongTyCon: option-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: ConDesc-type))) (LongTyCon: option-type)))))))) (DatBind: (TyVarseq:) (TyCon: ExDesc-type) (ConBind: (VId: ExDesc) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: VId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: Ty-type))) (LongTyCon: option-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: ExDesc-type))) (LongTyCon: option-type)))))))) (DatBind: (TyVarseq:) (TyCon: StrDesc-type) (ConBind: (VId: StrDesc) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: SigExp-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: StrDesc-type))) (LongTyCon: option-type)))))))) (DatBind: (TyVarseq:) (TyCon: FunDec-type) (ConBind: (VId: FunDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: FunBind-type)))))) (DatBind: (TyVarseq:) (TyCon: FunBind-type) (ConBind: (VId: FunBind) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: FunId-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: StrId-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq:) (LongTyCon: SigExp-type)) (TyRow: (Lab: |5|) (CONTy: (Tyseq:) (LongTyCon: StrExp-type)) (TyRow: (Lab: |6|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: FunBind-type))) (LongTyCon: option-type)))))))))) (DatBind: (TyVarseq:) (TyCon: TopDec-type) (ConBind: (VId: STRDECTopDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrDec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: TopDec-type))) (LongTyCon: option-type)))))) (ConBind: (VId: SIGDECTopDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigDec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: TopDec-type))) (LongTyCon: option-type)))))) (ConBind: (VId: FUNDECTopDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: FunDec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: TopDec-type))) (LongTyCon: option-type))))))))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoStrExp))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: STRUCTStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: IDStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: COLONStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SEALStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: APPStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: LETStrExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoStrDec))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: DECStrDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: STRUCTUREStrDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: LOCALStrDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: EMPTYStrDec) (PARAtPat: (ATPat: (IDAtPat: (LongVId: I))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SEQStrDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoStrBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: StrBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoSigExp))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SIGSigExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: IDSigExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: WHERETYPESigExp) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |5|) (ATPat: (WILDCARDAtPat:))))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoSigDec))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SigDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoSigBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SigBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoSpec))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: VALSpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: TYPESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: EQTYPESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: DATATYPESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: DATATYPE2Spec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: EXCEPTIONSpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: STRUCTURESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: INCLUDESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: EMPTYSpec) (PARAtPat: (ATPat: (IDAtPat: (LongVId: I))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SEQSpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SHARINGTYPESpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SHARINGSpec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoValDesc))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: ValDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoTypDesc))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: TypDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoDatDesc))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: DatDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |5|) (ATPat: (WILDCARDAtPat:))))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoConDesc))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: ConDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoExDesc))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: ExDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoStrDesc))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: StrDesc) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoFunDec))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: FunDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoFunBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: FunBind) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |4|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |5|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |6|) (ATPat: (WILDCARDAtPat:)))))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoTopDec))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: STRDECTopDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SIGDECTopDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: FUNDECTopDec) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)) (FIELDPatRow: (Lab: |3|) (ATPat: (WILDCARDAtPat:))))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))))))))))))))))))))))))))) (IDSigExp: (SigId: GRAMMAR_MODULE-sig))))))))))