hamlet/STAMP-sig.ss
(module STAMP-sig (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: STAMP-sig)
       (SIGSigExp:
        (SEQSpec:
         (EQTYPESpec: (TypDec: (TyVarseq:) (TyCon: stamp-type)))
         (SEQSpec:
          (VALSpec: (ValDesc: (VId: stamp) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: unit-type)) (CONTy: (Tyseq:) (LongTyCon: stamp-type)))))
          (SEQSpec:
           (VALSpec: (ValDesc: (VId: toString) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: stamp-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
           (SEQSpec:
            (VALSpec: (ValDesc: (VId: reset) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: unit-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
            (SEQSpec:
             (VALSpec:
              (ValDesc:
               (VId: compare)
               (ARROWTy:
                (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: stamp-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: stamp-type)))))
                (CONTy: (Tyseq:) (LongTyCon: order-type)))))
             (VALSpec:
              (ValDesc:
               (VId: min)
               (ARROWTy:
                (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: stamp-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: stamp-type)))))
                (CONTy: (Tyseq:) (LongTyCon: stamp-type)))))))))))))))))