(module GRAMMAR_MODULE-sig (planet chongkai/sml) (#%module-begin (Program: (SIGDECTopDec: (SigDec: (SigBind: (SigId: GRAMMAR_MODULE-sig) (SIGSigExp: (SEQSpec: (STRUCTURESpec: (StrDesc: (StrId: Core-struct) (IDSigExp: (SigId: GRAMMAR_CORE-sig)))) (SEQSpec: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Info-type))) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: VId-type)))) (TyVarseq:) (LongTyCon: VId-type) (CONTy: (Tyseq:) (LongTyCon: Core.VId-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: TyCon-type)))) (TyVarseq:) (LongTyCon: TyCon-type) (CONTy: (Tyseq:) (LongTyCon: Core.TyCon-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: TyVar-type)))) (TyVarseq:) (LongTyCon: TyVar-type) (CONTy: (Tyseq:) (LongTyCon: Core.TyVar-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: StrId-type)))) (TyVarseq:) (LongTyCon: StrId-type) (CONTy: (Tyseq:) (LongTyCon: Core.StrId-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: longVId-type)))) (TyVarseq:) (LongTyCon: longVId-type) (CONTy: (Tyseq:) (LongTyCon: Core.longVId-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: longTyCon-type)))) (TyVarseq:) (LongTyCon: longTyCon-type) (CONTy: (Tyseq:) (LongTyCon: Core.longTyCon-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: longStrId-type)))) (TyVarseq:) (LongTyCon: longStrId-type) (CONTy: (Tyseq:) (LongTyCon: Core.longStrId-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Dec-type)))) (TyVarseq:) (LongTyCon: Dec-type) (CONTy: (Tyseq:) (LongTyCon: Core.Dec-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Ty-type)))) (TyVarseq:) (LongTyCon: Ty-type) (CONTy: (Tyseq:) (LongTyCon: Core.Ty-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: TyVarseq-type)))) (TyVarseq:) (LongTyCon: TyVarseq-type) (CONTy: (Tyseq:) (LongTyCon: Core.TyVarseq-type)))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: SigId-type)))) (TyVarseq:) (LongTyCon: SigId-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigId.Id-type))))))) (EMPTYSpec:)) (SEQSpec: (SEQSpec: (INCLUDESpec: (WHERETYPESigExp: (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: FunId-type)))) (TyVarseq:) (LongTyCon: FunId-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: FunId.Id-type))))))) (EMPTYSpec:)) (SEQSpec: (DATATYPESpec: (DatDesc: (TyVarseq:) (TyCon: StrExp-type) (ConDesc: (VId: STRUCTStrExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrDec-type))))) (ConDesc: (VId: IDStrExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: longStrId-type))))) (ConDesc: (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)))))) (ConDesc: (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)))))) (ConDesc: (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)))))) (ConDesc: (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)))))))))))) (DatDesc: (TyVarseq:) (TyCon: StrDec-type) (ConDesc: (VId: DECStrDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Dec-type))))) (ConDesc: (VId: STRUCTUREStrDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrBind-type))))) (ConDesc: (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)))))) (ConDesc: (VId: EMPTYStrDec) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (ConDesc: (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))))))))))) (DatDesc: (TyVarseq:) (TyCon: StrBind-type) (ConDesc: (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)))))))) (DatDesc: (TyVarseq:) (TyCon: SigExp-type) (ConDesc: (VId: SIGSigExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Spec-type))))) (ConDesc: (VId: IDSigExp) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigId-type))))) (ConDesc: (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))))))))))) (DatDesc: (TyVarseq:) (TyCon: SigDec-type) (ConDesc: (VId: SigDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigBind-type)))))) (DatDesc: (TyVarseq:) (TyCon: SigBind-type) (ConDesc: (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)))))))) (DatDesc: (TyVarseq:) (TyCon: Spec-type) (ConDesc: (VId: VALSpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: ValDesc-type))))) (ConDesc: (VId: TYPESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TypDesc-type))))) (ConDesc: (VId: EQTYPESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: TypDesc-type))))) (ConDesc: (VId: DATATYPESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: DatDesc-type))))) (ConDesc: (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)))))) (ConDesc: (VId: EXCEPTIONSpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: ExDesc-type))))) (ConDesc: (VId: STRUCTURESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: StrDesc-type))))) (ConDesc: (VId: INCLUDESpec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SigExp-type))))) (ConDesc: (VId: EMPTYSpec) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (ConDesc: (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)))))) (ConDesc: (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)))))) (ConDesc: (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)))))))))))))))))) (DatDesc: (TyVarseq:) (TyCon: ValDesc-type) (ConDesc: (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)))))))) (DatDesc: (TyVarseq:) (TyCon: TypDesc-type) (ConDesc: (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)))))))) (DatDesc: (TyVarseq:) (TyCon: DatDesc-type) (ConDesc: (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))))))))) (DatDesc: (TyVarseq:) (TyCon: ConDesc-type) (ConDesc: (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)))))))) (DatDesc: (TyVarseq:) (TyCon: ExDesc-type) (ConDesc: (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)))))))) (DatDesc: (TyVarseq:) (TyCon: StrDesc-type) (ConDesc: (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)))))))) (DatDesc: (TyVarseq:) (TyCon: FunDec-type) (ConDesc: (VId: FunDec) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: FunBind-type)))))) (DatDesc: (TyVarseq:) (TyCon: FunBind-type) (ConDesc: (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)))))))))) (DatDesc: (TyVarseq:) (TyCon: TopDec-type) (ConDesc: (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)))))) (ConDesc: (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)))))) (ConDesc: (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)))))))))))))))))))))))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoStrExp) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: StrExp-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoStrDec) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: StrDec-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoStrBind) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: StrBind-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoSigExp) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: SigExp-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoSigDec) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: SigDec-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoSigBind) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: SigBind-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoSpec) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: Spec-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoValDesc) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: ValDesc-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoTypDesc) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: TypDesc-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoDatDesc) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: DatDesc-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoConDesc) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: ConDesc-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoExDesc) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: ExDesc-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoStrDesc) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: StrDesc-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoFunDec) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: FunDec-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (SEQSpec: (VALSpec: (ValDesc: (VId: infoFunBind) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: FunBind-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))) (VALSpec: (ValDesc: (VId: infoTopDec) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: TopDec-type)) (CONTy: (Tyseq:) (LongTyCon: Info-type))))))))))))))))))))))))))))))))))))))))))