hamlet/PP_CORE-sig.ss
(module PP_CORE-sig (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: PP_CORE-sig)
       (SIGSigExp:
        (SEQSpec:
         (SEQSpec:
          (INCLUDESpec:
           (WHERETYPESigExp:
            (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: VId-type))))
            (TyVarseq:)
            (LongTyCon: VId-type)
            (CONTy: (Tyseq:) (LongTyCon: GrammarCore.VId-type))))
          (EMPTYSpec:))
         (SEQSpec:
          (SEQSpec:
           (INCLUDESpec:
            (WHERETYPESigExp:
             (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: TyCon-type))))
             (TyVarseq:)
             (LongTyCon: TyCon-type)
             (CONTy: (Tyseq:) (LongTyCon: GrammarCore.TyCon-type))))
           (EMPTYSpec:))
          (SEQSpec:
           (SEQSpec:
            (INCLUDESpec:
             (WHERETYPESigExp:
              (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: StrId-type))))
              (TyVarseq:)
              (LongTyCon: StrId-type)
              (CONTy: (Tyseq:) (LongTyCon: GrammarCore.StrId-type))))
            (EMPTYSpec:))
           (SEQSpec:
            (SEQSpec:
             (INCLUDESpec:
              (WHERETYPESigExp:
               (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: longVId-type))))
               (TyVarseq:)
               (LongTyCon: longVId-type)
               (CONTy: (Tyseq:) (LongTyCon: GrammarCore.longVId-type))))
             (EMPTYSpec:))
            (SEQSpec:
             (SEQSpec:
              (INCLUDESpec:
               (WHERETYPESigExp:
                (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: longTyCon-type))))
                (TyVarseq:)
                (LongTyCon: longTyCon-type)
                (CONTy: (Tyseq:) (LongTyCon: GrammarCore.longTyCon-type))))
              (EMPTYSpec:))
             (SEQSpec:
              (SEQSpec:
               (INCLUDESpec:
                (WHERETYPESigExp:
                 (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: longStrId-type))))
                 (TyVarseq:)
                 (LongTyCon: longStrId-type)
                 (CONTy: (Tyseq:) (LongTyCon: GrammarCore.longStrId-type))))
               (EMPTYSpec:))
              (SEQSpec:
               (SEQSpec:
                (INCLUDESpec:
                 (WHERETYPESigExp:
                  (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: TyVarseq-type))))
                  (TyVarseq:)
                  (LongTyCon: TyVarseq-type)
                  (CONTy: (Tyseq:) (LongTyCon: GrammarCore.TyVarseq-type))))
                (EMPTYSpec:))
               (SEQSpec:
                (SEQSpec:
                 (INCLUDESpec:
                  (WHERETYPESigExp:
                   (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Ty-type))))
                   (TyVarseq:)
                   (LongTyCon: Ty-type)
                   (CONTy: (Tyseq:) (LongTyCon: GrammarCore.Ty-type))))
                 (EMPTYSpec:))
                (SEQSpec:
                 (SEQSpec:
                  (INCLUDESpec:
                   (WHERETYPESigExp:
                    (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Dec-type))))
                    (TyVarseq:)
                    (LongTyCon: Dec-type)
                    (CONTy: (Tyseq:) (LongTyCon: GrammarCore.Dec-type))))
                  (EMPTYSpec:))
                 (SEQSpec:
                  (VALSpec:
                   (ValDesc:
                    (VId: ppVId)
                    (ARROWTy:
                     (RECORDTy:
                      (TyRow:
                       (Lab: |1|)
                       (CONTy: (Tyseq:) (LongTyCon: TextIO.outstream-type))
                       (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: VId-type))))))
                     (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                  (SEQSpec:
                   (VALSpec:
                    (ValDesc:
                     (VId: ppTyCon)
                     (ARROWTy:
                      (RECORDTy:
                       (TyRow:
                        (Lab: |1|)
                        (CONTy: (Tyseq:) (LongTyCon: TextIO.outstream-type))
                        (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: TyCon-type))))))
                      (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                   (SEQSpec:
                    (VALSpec:
                     (ValDesc:
                      (VId: ppStrId)
                      (ARROWTy:
                       (RECORDTy:
                        (TyRow:
                         (Lab: |1|)
                         (CONTy: (Tyseq:) (LongTyCon: TextIO.outstream-type))
                         (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: StrId-type))))))
                       (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                    (SEQSpec:
                     (VALSpec:
                      (ValDesc:
                       (VId: ppLongVId)
                       (ARROWTy:
                        (RECORDTy:
                         (TyRow:
                          (Lab: |1|)
                          (CONTy: (Tyseq:) (LongTyCon: TextIO.outstream-type))
                          (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: longVId-type))))))
                        (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                     (SEQSpec:
                      (VALSpec:
                       (ValDesc:
                        (VId: ppLongTyCon)
                        (ARROWTy:
                         (RECORDTy:
                          (TyRow:
                           (Lab: |1|)
                           (CONTy: (Tyseq:) (LongTyCon: TextIO.outstream-type))
                           (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: longTyCon-type))))))
                         (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                      (SEQSpec:
                       (VALSpec:
                        (ValDesc:
                         (VId: ppLongStrId)
                         (ARROWTy:
                          (RECORDTy:
                           (TyRow:
                            (Lab: |1|)
                            (CONTy: (Tyseq:) (LongTyCon: TextIO.outstream-type))
                            (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: longStrId-type))))))
                          (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                       (SEQSpec:
                        (VALSpec:
                         (ValDesc:
                          (VId: ppTyVarseq)
                          (ARROWTy:
                           (RECORDTy:
                            (TyRow:
                             (Lab: |1|)
                             (CONTy: (Tyseq:) (LongTyCon: TextIO.outstream-type))
                             (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: TyVarseq-type))))))
                           (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                        (SEQSpec:
                         (VALSpec:
                          (ValDesc:
                           (VId: ppTy)
                           (ARROWTy:
                            (RECORDTy:
                             (TyRow:
                              (Lab: |1|)
                              (CONTy: (Tyseq:) (LongTyCon: TextIO.outstream-type))
                              (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Ty-type))))))
                            (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                         (VALSpec:
                          (ValDesc:
                           (VId: ppDec)
                           (ARROWTy:
                            (RECORDTy:
                             (TyRow:
                              (Lab: |1|)
                              (CONTy: (Tyseq:) (LongTyCon: TextIO.outstream-type))
                              (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: Dec-type))))))
                            (CONTy: (Tyseq:) (LongTyCon: unit-type))))))))))))))))))))))))))
    (Program: (STRDECTopDec: (EMPTYStrDec:))))))