hamlet/SOURCE-sig.ss
(module SOURCE-sig (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: SOURCE-sig)
       (SIGSigExp:
        (SEQSpec:
         (SEQSpec:
          (INCLUDESpec:
           (WHERETYPESigExp:
            (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: source-type))))
            (TyVarseq:)
            (LongTyCon: source-type)
            (CONTy: (Tyseq:) (LongTyCon: string-type))))
          (EMPTYSpec:))
         (SEQSpec:
          (SEQSpec:
           (INCLUDESpec:
            (WHERETYPESigExp:
             (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: pos-type))))
             (TyVarseq:)
             (LongTyCon: pos-type)
             (RECORDTy:
              (TyRow:
               (Lab: abs)
               (CONTy: (Tyseq:) (LongTyCon: int-type))
               (TyRow: (Lab: lin) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: col) (CONTy: (Tyseq:) (LongTyCon: int-type))))))))
           (EMPTYSpec:))
          (SEQSpec:
           (SEQSpec:
            (INCLUDESpec:
             (WHERETYPESigExp:
              (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: region-type))))
              (TyVarseq:)
              (LongTyCon: region-type)
              (RECORDTy: (TyRow: (Lab: left) (CONTy: (Tyseq:) (LongTyCon: pos-type)) (TyRow: (Lab: right) (CONTy: (Tyseq:) (LongTyCon: pos-type)))))))
            (EMPTYSpec:))
           (SEQSpec:
            (SEQSpec:
             (INCLUDESpec:
              (WHERETYPESigExp:
               (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: info-type))))
               (TyVarseq:)
               (LongTyCon: info-type)
               (RECORDTy:
                (TyRow:
                 (Lab: file)
                 (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: string-type))) (LongTyCon: option-type))
                 (TyRow: (Lab: region) (CONTy: (Tyseq:) (LongTyCon: region-type)))))))
             (EMPTYSpec:))
            (SEQSpec:
             (EXCEPTIONSpec:
              (ExDesc:
               (VId: Error)
               (RECORDTy:
                (TyRow:
                 (Lab: |1|)
                 (PARTy: (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: int-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type))))))
                 (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: string-type)))))))
             (SEQSpec:
              (VALSpec: (ValDesc: (VId: nowherePos) (CONTy: (Tyseq:) (LongTyCon: pos-type))))
              (SEQSpec:
               (VALSpec: (ValDesc: (VId: nowhere) (CONTy: (Tyseq:) (LongTyCon: info-type))))
               (SEQSpec:
                (VALSpec:
                 (ValDesc:
                  (VId: over)
                  (ARROWTy:
                   (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: info-type)))))
                   (CONTy: (Tyseq:) (LongTyCon: info-type)))))
                (SEQSpec:
                 (VALSpec:
                  (ValDesc:
                   (VId: between)
                   (ARROWTy:
                    (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: info-type)))))
                    (CONTy: (Tyseq:) (LongTyCon: info-type)))))
                 (VALSpec:
                  (ValDesc:
                   (VId: compare)
                   (ARROWTy:
                    (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: info-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: info-type)))))
                    (CONTy: (Tyseq:) (LongTyCon: order-type)))))))))))))))))))))