hamlet/DERIVED_FORMS_MODULE-sig.ss
(module DERIVED_FORMS_MODULE-sig (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: DERIVED_FORMS_MODULE-sig)
       (SIGSigExp:
        (SEQSpec:
         (SEQSpec:
          (INCLUDESpec:
           (WHERETYPESigExp:
            (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Info-type))))
            (TyVarseq:)
            (LongTyCon: Info-type)
            (CONTy: (Tyseq:) (LongTyCon: GrammarModule.Info-type))))
          (EMPTYSpec:))
         (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: SigId-type))))
                (TyVarseq:)
                (LongTyCon: SigId-type)
                (CONTy: (Tyseq:) (LongTyCon: GrammarModule.SigId-type))))
              (EMPTYSpec:))
             (SEQSpec:
              (SEQSpec:
               (INCLUDESpec:
                (WHERETYPESigExp:
                 (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: FunId-type))))
                 (TyVarseq:)
                 (LongTyCon: FunId-type)
                 (CONTy: (Tyseq:) (LongTyCon: GrammarModule.FunId-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: Ty-type))))
                   (TyVarseq:)
                   (LongTyCon: Ty-type)
                   (CONTy: (Tyseq:) (LongTyCon: GrammarCore.Ty-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: StrExp-type))))
                     (TyVarseq:)
                     (LongTyCon: StrExp-type)
                     (CONTy: (Tyseq:) (LongTyCon: GrammarModule.StrExp-type))))
                   (EMPTYSpec:))
                  (SEQSpec:
                   (SEQSpec:
                    (INCLUDESpec:
                     (WHERETYPESigExp:
                      (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: StrDec-type))))
                      (TyVarseq:)
                      (LongTyCon: StrDec-type)
                      (CONTy: (Tyseq:) (LongTyCon: GrammarModule.StrDec-type))))
                    (EMPTYSpec:))
                   (SEQSpec:
                    (SEQSpec:
                     (INCLUDESpec:
                      (WHERETYPESigExp:
                       (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: StrBind-type))))
                       (TyVarseq:)
                       (LongTyCon: StrBind-type)
                       (CONTy: (Tyseq:) (LongTyCon: GrammarModule.StrBind-type))))
                     (EMPTYSpec:))
                    (SEQSpec:
                     (SEQSpec:
                      (INCLUDESpec:
                       (WHERETYPESigExp:
                        (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: SigExp-type))))
                        (TyVarseq:)
                        (LongTyCon: SigExp-type)
                        (CONTy: (Tyseq:) (LongTyCon: GrammarModule.SigExp-type))))
                      (EMPTYSpec:))
                     (SEQSpec:
                      (SEQSpec:
                       (INCLUDESpec:
                        (WHERETYPESigExp:
                         (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: TyReaDesc-type))))
                         (TyVarseq:)
                         (LongTyCon: TyReaDesc-type)
                         (CONTy:
                          (Tyseq:
                           (PARTy:
                            (RECORDTy:
                             (TyRow:
                              (Lab: |1|)
                              (CONTy: (Tyseq:) (LongTyCon: Info-type))
                              (TyRow:
                               (Lab: |2|)
                               (CONTy: (Tyseq:) (LongTyCon: TyVarseq-type))
                               (TyRow:
                                (Lab: |3|)
                                (CONTy: (Tyseq:) (LongTyCon: longTyCon-type))
                                (TyRow: (Lab: |4|) (CONTy: (Tyseq:) (LongTyCon: Ty-type)))))))))
                          (LongTyCon: list-type))))
                       (EMPTYSpec:))
                      (SEQSpec:
                       (SEQSpec:
                        (INCLUDESpec:
                         (WHERETYPESigExp:
                          (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Spec-type))))
                          (TyVarseq:)
                          (LongTyCon: Spec-type)
                          (CONTy: (Tyseq:) (LongTyCon: GrammarModule.Spec-type))))
                        (EMPTYSpec:))
                       (SEQSpec:
                        (SEQSpec:
                         (INCLUDESpec:
                          (WHERETYPESigExp:
                           (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: SynDesc-type))))
                           (TyVarseq:)
                           (LongTyCon: SynDesc-type)
                           (CONTy:
                            (Tyseq:
                             (PARTy:
                              (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)))))))))
                            (LongTyCon: list-type))))
                         (EMPTYSpec:))
                        (SEQSpec:
                         (SEQSpec:
                          (INCLUDESpec:
                           (WHERETYPESigExp:
                            (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: FunBind-type))))
                            (TyVarseq:)
                            (LongTyCon: FunBind-type)
                            (CONTy: (Tyseq:) (LongTyCon: GrammarModule.FunBind-type))))
                          (EMPTYSpec:))
                         (SEQSpec:
                          (VALSpec:
                           (ValDesc:
                            (VId: TRANSStrBind)
                            (ARROWTy:
                             (RECORDTy:
                              (TyRow:
                               (Lab: |1|)
                               (CONTy: (Tyseq:) (LongTyCon: Info-type))
                               (TyRow:
                                (Lab: |2|)
                                (CONTy: (Tyseq:) (LongTyCon: StrId-type))
                                (TyRow:
                                 (Lab: |3|)
                                 (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: SigExp-type))) (LongTyCon: option-type))
                                 (TyRow:
                                  (Lab: |4|)
                                  (CONTy: (Tyseq:) (LongTyCon: StrExp-type))
                                  (TyRow: (Lab: |5|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: StrBind-type))) (LongTyCon: option-type))))))))
                             (CONTy: (Tyseq:) (LongTyCon: StrBind-type)))))
                          (SEQSpec:
                           (VALSpec:
                            (ValDesc:
                             (VId: SEALStrBind)
                             (ARROWTy:
                              (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:) (LongTyCon: StrExp-type))
                                   (TyRow: (Lab: |5|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: StrBind-type))) (LongTyCon: option-type))))))))
                              (CONTy: (Tyseq:) (LongTyCon: StrBind-type)))))
                           (SEQSpec:
                            (VALSpec:
                             (ValDesc:
                              (VId: APPDECStrExp)
                              (ARROWTy:
                               (RECORDTy:
                                (TyRow:
                                 (Lab: |1|)
                                 (CONTy: (Tyseq:) (LongTyCon: Info-type))
                                 (TyRow:
                                  (Lab: |2|)
                                  (CONTy: (Tyseq:) (LongTyCon: FunId-type))
                                  (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: StrDec-type))))))
                               (CONTy: (Tyseq:) (LongTyCon: StrExp-type)))))
                            (SEQSpec:
                             (VALSpec:
                              (ValDesc:
                               (VId: TRANSFunBind)
                               (ARROWTy:
                                (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: (CONTy: (Tyseq:) (LongTyCon: SigExp-type))) (LongTyCon: option-type))
                                      (TyRow:
                                       (Lab: |6|)
                                       (CONTy: (Tyseq:) (LongTyCon: StrExp-type))
                                       (TyRow: (Lab: |7|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: FunBind-type))) (LongTyCon: option-type))))))))))
                                (CONTy: (Tyseq:) (LongTyCon: FunBind-type)))))
                             (SEQSpec:
                              (VALSpec:
                               (ValDesc:
                                (VId: SEALFunBind)
                                (ARROWTy:
                                 (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: SigExp-type))
                                       (TyRow:
                                        (Lab: |6|)
                                        (CONTy: (Tyseq:) (LongTyCon: StrExp-type))
                                        (TyRow: (Lab: |7|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: FunBind-type))) (LongTyCon: option-type))))))))))
                                 (CONTy: (Tyseq:) (LongTyCon: FunBind-type)))))
                              (SEQSpec:
                               (VALSpec:
                                (ValDesc:
                                 (VId: TRANSSPECFunBind)
                                 (ARROWTy:
                                  (RECORDTy:
                                   (TyRow:
                                    (Lab: |1|)
                                    (CONTy: (Tyseq:) (LongTyCon: Info-type))
                                    (TyRow:
                                     (Lab: |2|)
                                     (CONTy: (Tyseq:) (LongTyCon: FunId-type))
                                     (TyRow:
                                      (Lab: |3|)
                                      (CONTy: (Tyseq:) (LongTyCon: Spec-type))
                                      (TyRow:
                                       (Lab: |4|)
                                       (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: SigExp-type))) (LongTyCon: option-type))
                                       (TyRow:
                                        (Lab: |5|)
                                        (CONTy: (Tyseq:) (LongTyCon: StrExp-type))
                                        (TyRow: (Lab: |6|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: FunBind-type))) (LongTyCon: option-type)))))))))
                                  (CONTy: (Tyseq:) (LongTyCon: FunBind-type)))))
                               (SEQSpec:
                                (VALSpec:
                                 (ValDesc:
                                  (VId: SEALSPECFunBind)
                                  (ARROWTy:
                                   (RECORDTy:
                                    (TyRow:
                                     (Lab: |1|)
                                     (CONTy: (Tyseq:) (LongTyCon: Info-type))
                                     (TyRow:
                                      (Lab: |2|)
                                      (CONTy: (Tyseq:) (LongTyCon: FunId-type))
                                      (TyRow:
                                       (Lab: |3|)
                                       (CONTy: (Tyseq:) (LongTyCon: Spec-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)))))))))
                                   (CONTy: (Tyseq:) (LongTyCon: FunBind-type)))))
                                (SEQSpec:
                                 (VALSpec:
                                  (ValDesc:
                                   (VId: SYNSpec)
                                   (ARROWTy:
                                    (RECORDTy:
                                     (TyRow:
                                      (Lab: |1|)
                                      (CONTy: (Tyseq:) (LongTyCon: Info-type))
                                      (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: SynDesc-type)))))
                                    (CONTy: (Tyseq:) (LongTyCon: Spec-type)))))
                                 (SEQSpec:
                                  (VALSpec:
                                   (ValDesc:
                                    (VId: INCLUDEMULTISpec)
                                    (ARROWTy:
                                     (RECORDTy:
                                      (TyRow:
                                       (Lab: |1|)
                                       (CONTy: (Tyseq:) (LongTyCon: Info-type))
                                       (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: SigId-type))) (LongTyCon: list-type)))))
                                     (CONTy: (Tyseq:) (LongTyCon: Spec-type)))))
                                  (SEQSpec:
                                   (VALSpec:
                                    (ValDesc:
                                     (VId: SynDesc)
                                     (ARROWTy:
                                      (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: SynDesc-type))) (LongTyCon: option-type))))))))
                                      (CONTy: (Tyseq:) (LongTyCon: SynDesc-type)))))
                                   (SEQSpec:
                                    (VALSpec:
                                     (ValDesc:
                                      (VId: WHERETYPESigExp)
                                      (ARROWTy:
                                       (RECORDTy:
                                        (TyRow:
                                         (Lab: |1|)
                                         (CONTy: (Tyseq:) (LongTyCon: Info-type))
                                         (TyRow:
                                          (Lab: |2|)
                                          (CONTy: (Tyseq:) (LongTyCon: SigExp-type))
                                          (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: TyReaDesc-type))))))
                                       (CONTy: (Tyseq:) (LongTyCon: SigExp-type)))))
                                    (VALSpec:
                                     (ValDesc:
                                      (VId: TyReaDesc)
                                      (ARROWTy:
                                       (RECORDTy:
                                        (TyRow:
                                         (Lab: |1|)
                                         (CONTy: (Tyseq:) (LongTyCon: Info-type))
                                         (TyRow:
                                          (Lab: |2|)
                                          (CONTy: (Tyseq:) (LongTyCon: TyVarseq-type))
                                          (TyRow:
                                           (Lab: |3|)
                                           (CONTy: (Tyseq:) (LongTyCon: longTyCon-type))
                                           (TyRow:
                                            (Lab: |4|)
                                            (CONTy: (Tyseq:) (LongTyCon: Ty-type))
                                            (TyRow: (Lab: |5|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: TyReaDesc-type))) (LongTyCon: option-type))))))))
                                       (CONTy: (Tyseq:) (LongTyCon: TyReaDesc-type))))))))))))))))))))))))))))))))))))))))