(module GrammarCoreFn-functor (planet chongkai/sml) (#%module-begin (Program: (FUNDECTopDec: (FunDec: (FunBind: (FunId: GrammarCoreFn-functor) (StrId: _id18-struct) (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Info-type)))) (LETStrExp: (DECStrDec: (OPENDec: (LongStrId: _id18-struct))) (COLONStrExp: (STRUCTStrExp: (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Info-type) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: SCon-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SCon.SCon-type)))))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Lab-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Lab.Lab-type)))))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: VId-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: VId.Id-type)))))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: TyCon-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TyCon.Id-type)))))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: TyVar-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TyVar.TyVar-type)))))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: StrId-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrId.Id-type)))))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: longVId-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: LongVId.longId-type)))))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: longTyCon-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: LongTyCon.longId-type)))))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: longStrId-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: LongStrId.longId-type)))))))) (SEQStrDec: (DECStrDec: (DATATYPEDec: (DatBind: (TyVarseq:) (TyCon: Op-type) (ConBind: (VId: SANSOp) (ConBind: (VId: WITHOp)))))) (SEQStrDec: (DECStrDec: (DATATYPEDec: (DatBind: (TyVarseq:) (TyCon: AtExp-type) (ConBind: (VId: SCONAtExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SCon-type))))) (ConBind: (VId: IDAtExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Op-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: longVId-type)))))) (ConBind: (VId: RECORDAtExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: ExpRow-type))) (LongTyCon: option-type))))) (ConBind: (VId: LETAtExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Dec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)))))) (ConBind: (VId: PARAtExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Exp-type))))) (ConBind: (VId: SEQAtExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: AtExp-type)))))))))))) (DatBind: (TyVarseq:) (TyCon: ExpRow-type) (ConBind: (VId: ExpRow) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Lab-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: ExpRow-type))) (LongTyCon: option-type)))))))) (DatBind: (TyVarseq:) (TyCon: Exp-type) (ConBind: (VId: ATExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: AtExp-type))))) (ConBind: (VId: APPExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: AtExp-type)))))) (ConBind: (VId: COLONExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Ty-type)))))) (ConBind: (VId: HANDLEExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Match-type)))))) (ConBind: (VId: RAISEExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Exp-type))))) (ConBind: (VId: FNExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Match-type))))) (ConBind: (VId: IFExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)))))))))))))) (DatBind: (TyVarseq:) (TyCon: Match-type) (ConBind: (VId: Match) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Mrule-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: Match-type))) (LongTyCon: option-type))))))) (DatBind: (TyVarseq:) (TyCon: Mrule-type) (ConBind: (VId: Mrule) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Pat-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Exp-type))))))) (DatBind: (TyVarseq:) (TyCon: Dec-type) (ConBind: (VId: VALDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TyVarseq-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: ValBind-type)))))) (ConBind: (VId: TYPEDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TypBind-type))))) (ConBind: (VId: DATATYPEDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: DatBind-type))))) (ConBind: (VId: DATATYPE2Dec) (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: ABSTYPEDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: DatBind-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Dec-type)))))) (ConBind: (VId: EXCEPTIONDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: ExBind-type))))) (ConBind: (VId: LOCALDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Dec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Dec-type)))))) (ConBind: (VId: OPENDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: longStrId-type))) (LongTyCon: list-type))))) (ConBind: (VId: EMPTYDec) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (ConBind: (VId: SEQDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Dec-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Dec-type)))))))))))))))) (DatBind: (TyVarseq:) (TyCon: ValBind-type) (ConBind: (VId: PLAINValBind) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Pat-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Exp-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: ValBind-type))) (LongTyCon: option-type))))))) (ConBind: (VId: RECValBind) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: ValBind-type))))))) (DatBind: (TyVarseq:) (TyCon: TypBind-type) (ConBind: (VId: TypBind) (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: Ty-type)) (TyRow: (Lab: |5|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: TypBind-type))) (LongTyCon: option-type))))))))) (DatBind: (TyVarseq:) (TyCon: DatBind-type) (ConBind: (VId: DatBind) (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: ConBind-type)) (TyRow: (Lab: |5|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: DatBind-type))) (LongTyCon: option-type))))))))) (DatBind: (TyVarseq:) (TyCon: ConBind-type) (ConBind: (VId: ConBind) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Op-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: VId-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: Ty-type))) (LongTyCon: option-type)) (TyRow: (Lab: |5|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: ConBind-type))) (LongTyCon: option-type))))))))) (DatBind: (TyVarseq:) (TyCon: ExBind-type) (ConBind: (VId: NEWExBind) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Op-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: VId-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: Ty-type))) (LongTyCon: option-type)) (TyRow: (Lab: |5|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: ExBind-type))) (LongTyCon: option-type)))))))) (ConBind: (VId: EQUALExBind) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Op-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: VId-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq:) (LongTyCon: Op-type)) (TyRow: (Lab: |5|) (CONTy: (Tyseq:) (LongTyCon: longVId-type)) (TyRow: (Lab: |6|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: ExBind-type))) (LongTyCon: option-type))))))))))) (DatBind: (TyVarseq:) (TyCon: AtPat-type) (ConBind: (VId: WILDCARDAtPat) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (ConBind: (VId: SCONAtPat) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SCon-type))))) (ConBind: (VId: IDAtPat) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Op-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: longVId-type)))))) (ConBind: (VId: RECORDAtPat) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: PatRow-type))) (LongTyCon: option-type))))) (ConBind: (VId: PARAtPat) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Pat-type)))))))))) (DatBind: (TyVarseq:) (TyCon: PatRow-type) (ConBind: (VId: DOTSPatRow) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (ConBind: (VId: FIELDPatRow) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Lab-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Pat-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: PatRow-type))) (LongTyCon: option-type))))))))) (DatBind: (TyVarseq:) (TyCon: Pat-type) (ConBind: (VId: ATPat) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: AtPat-type))))) (ConBind: (VId: CONPat) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Op-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: longVId-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq:) (LongTyCon: AtPat-type))))))) (ConBind: (VId: COLONPat) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Pat-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Ty-type)))))) (ConBind: (VId: ASPat) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Op-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: VId-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: Ty-type))) (LongTyCon: option-type)) (TyRow: (Lab: |5|) (CONTy: (Tyseq:) (LongTyCon: Pat-type)))))))))))) (DatBind: (TyVarseq:) (TyCon: Ty-type) (ConBind: (VId: VARTy) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TyVar-type))))) (ConBind: (VId: RECORDTy) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: TyRow-type))) (LongTyCon: option-type))))) (ConBind: (VId: CONTy) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Tyseq-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: longTyCon-type)))))) (ConBind: (VId: ARROWTy) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Ty-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Ty-type)))))) (ConBind: (VId: PARTy) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Ty-type)))))))))) (DatBind: (TyVarseq:) (TyCon: TyRow-type) (ConBind: (VId: TyRow) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Lab-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Ty-type)) (TyRow: (Lab: |4|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: TyRow-type))) (LongTyCon: option-type)))))))) (DatBind: (TyVarseq:) (TyCon: Tyseq-type) (ConBind: (VId: Tyseq) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: Ty-type))) (LongTyCon: list-type)))))) (DatBind: (TyVarseq:) (TyCon: TyVarseq-type) (ConBind: (VId: TyVarseq) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: TyVar-type))) (LongTyCon: list-type)))))))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoAtExp))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SCONAtExp) (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: IDAtExp) (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: RECORDAtExp) (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: LETAtExp) (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: PARAtExp) (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: SEQAtExp) (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: infoExpRow))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: ExpRow) (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: infoExp))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: ATExp) (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: APPExp) (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: COLONExp) (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: HANDLEExp) (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: RAISEExp) (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: FNExp) (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: IFExp) (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: infoMatch))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: Match) (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: infoMrule))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: Mrule) (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: infoDec))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: VALDec) (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: TYPEDec) (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: DATATYPEDec) (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: DATATYPE2Dec) (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: ABSTYPEDec) (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: EXCEPTIONDec) (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: LOCALDec) (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: OPENDec) (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: EMPTYDec) (PARAtPat: (ATPat: (IDAtPat: (LongVId: I))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SEQDec) (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: infoValBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: PLAINValBind) (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)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: RECValBind) (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: infoTypBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: TypBind) (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: infoDatBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: DatBind) (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: infoConBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: ConBind) (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: infoExBind))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: NEWExBind) (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)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: EQUALExBind) (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))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoAtPat))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: WILDCARDAtPat) (PARAtPat: (ATPat: (IDAtPat: (LongVId: I))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: SCONAtPat) (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: IDAtPat) (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: RECORDAtPat) (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: PARAtPat) (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: infoPatRow))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: DOTSPatRow) (PARAtPat: (ATPat: (IDAtPat: (LongVId: I))))))))))) (ATExp: (IDAtExp: (LongVId: I)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: FIELDPatRow) (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: infoPat))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: ATPat) (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: CONPat) (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)))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: COLONPat) (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: ASPat) (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: infoTy))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: VARTy) (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: RECORDTy) (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: CONTy) (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: ARROWTy) (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: PARTy) (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: infoTyRow))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: TyRow) (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: infoTyseq))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: Tyseq) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))) (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: infoTyVarseq))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: TyVarseq) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (WILDCARDAtPat:)))))))))))) (ATExp: (IDAtExp: (LongVId: I)))))))))))))))))))))))))))))))))))))))) (IDSigExp: (SigId: GRAMMAR_CORE-sig))))))))))