hamlet/INFIX-sig.ss
(module INFIX-sig (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: INFIX-sig)
       (SIGSigExp:
        (SEQSpec:
         (SEQSpec:
          (INCLUDESpec:
           (WHERETYPESigExp:
            (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Info-type))))
            (TyVarseq:)
            (LongTyCon: Info-type)
            (CONTy: (Tyseq:) (LongTyCon: GrammarCore.Info-type))))
          (EMPTYSpec:))
         (SEQSpec:
          (SEQSpec:
           (INCLUDESpec:
            (WHERETYPESigExp:
             (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Op-type))))
             (TyVarseq:)
             (LongTyCon: Op-type)
             (CONTy: (Tyseq:) (LongTyCon: GrammarCore.Op-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: longVId-type))))
               (TyVarseq:)
               (LongTyCon: longVId-type)
               (CONTy: (Tyseq:) (LongTyCon: GrammarCore.longVId-type))))
             (EMPTYSpec:))
            (SEQSpec:
             (SEQSpec:
              (INCLUDESpec:
               (WHERETYPESigExp:
                (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Exp-type))))
                (TyVarseq:)
                (LongTyCon: Exp-type)
                (CONTy: (Tyseq:) (LongTyCon: GrammarCore.Exp-type))))
              (EMPTYSpec:))
             (SEQSpec:
              (SEQSpec:
               (INCLUDESpec:
                (WHERETYPESigExp:
                 (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: Pat-type))))
                 (TyVarseq:)
                 (LongTyCon: Pat-type)
                 (CONTy: (Tyseq:) (LongTyCon: GrammarCore.Pat-type))))
               (EMPTYSpec:))
              (SEQSpec:
               (SEQSpec:
                (INCLUDESpec:
                 (WHERETYPESigExp:
                  (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: AtExp-type))))
                  (TyVarseq:)
                  (LongTyCon: AtExp-type)
                  (CONTy: (Tyseq:) (LongTyCon: GrammarCore.AtExp-type))))
                (EMPTYSpec:))
               (SEQSpec:
                (SEQSpec:
                 (INCLUDESpec:
                  (WHERETYPESigExp:
                   (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: AtPat-type))))
                   (TyVarseq:)
                   (LongTyCon: AtPat-type)
                   (CONTy: (Tyseq:) (LongTyCon: GrammarCore.AtPat-type))))
                 (EMPTYSpec:))
                (SEQSpec:
                 (DATATYPESpec: (DatDesc: (TyVarseq:) (TyCon: Assoc-type) (ConDesc: (VId: LEFT) (ConDesc: (VId: RIGHT)))))
                 (SEQSpec:
                  (SEQSpec:
                   (INCLUDESpec:
                    (WHERETYPESigExp:
                     (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: InfStatus-type))))
                     (TyVarseq:)
                     (LongTyCon: InfStatus-type)
                     (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Assoc-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)))))))
                   (EMPTYSpec:))
                  (SEQSpec:
                   (SEQSpec:
                    (INCLUDESpec:
                     (WHERETYPESigExp:
                      (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: InfEnv-type))))
                      (TyVarseq:)
                      (LongTyCon: InfEnv-type)
                      (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: InfStatus-type))) (LongTyCon: VIdMap.map-type))))
                    (EMPTYSpec:))
                   (SEQSpec:
                    (VALSpec: (ValDesc: (VId: empty) (CONTy: (Tyseq:) (LongTyCon: InfEnv-type))))
                    (SEQSpec:
                     (VALSpec:
                      (ValDesc:
                       (VId: assign)
                       (ARROWTy:
                        (RECORDTy:
                         (TyRow:
                          (Lab: |1|)
                          (CONTy: (Tyseq:) (LongTyCon: InfEnv-type))
                          (TyRow:
                           (Lab: |2|)
                           (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: VId.Id-type))) (LongTyCon: list-type))
                           (TyRow: (Lab: |3|) (CONTy: (Tyseq:) (LongTyCon: InfStatus-type))))))
                        (CONTy: (Tyseq:) (LongTyCon: InfEnv-type)))))
                     (SEQSpec:
                      (VALSpec:
                       (ValDesc:
                        (VId: cancel)
                        (ARROWTy:
                         (RECORDTy:
                          (TyRow:
                           (Lab: |1|)
                           (CONTy: (Tyseq:) (LongTyCon: InfEnv-type))
                           (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: VId.Id-type))) (LongTyCon: list-type)))))
                         (CONTy: (Tyseq:) (LongTyCon: InfEnv-type)))))
                      (SEQSpec:
                       (VALSpec:
                        (ValDesc:
                         (VId: parseExp)
                         (ARROWTy:
                          (RECORDTy:
                           (TyRow:
                            (Lab: |1|)
                            (CONTy: (Tyseq:) (LongTyCon: InfEnv-type))
                            (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: AtExp-type))) (LongTyCon: list-type)))))
                          (CONTy: (Tyseq:) (LongTyCon: Exp-type)))))
                       (SEQSpec:
                        (VALSpec:
                         (ValDesc:
                          (VId: parsePat)
                          (ARROWTy:
                           (RECORDTy:
                            (TyRow:
                             (Lab: |1|)
                             (CONTy: (Tyseq:) (LongTyCon: InfEnv-type))
                             (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: AtPat-type))) (LongTyCon: list-type)))))
                           (CONTy: (Tyseq:) (LongTyCon: Pat-type)))))
                        (VALSpec:
                         (ValDesc:
                          (VId: parseFmrule)
                          (ARROWTy:
                           (RECORDTy:
                            (TyRow:
                             (Lab: |1|)
                             (CONTy: (Tyseq:) (LongTyCon: InfEnv-type))
                             (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: AtPat-type))) (LongTyCon: list-type)))))
                           (RECORDTy:
                            (TyRow:
                             (Lab: |1|)
                             (CONTy: (Tyseq:) (LongTyCon: Op-type))
                             (TyRow:
                              (Lab: |2|)
                              (CONTy: (Tyseq:) (LongTyCon: VId-type))
                              (TyRow:
                               (Lab: |3|)
                               (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: AtPat-type))) (LongTyCon: list-type))))))))))))))))))))))))))))))))