hamlet/GRAMMAR_MODULE-sig.ss
(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))))))))))))))))))))))))))))))))))))))))))