hamlet/ORD_MAP-sig.ss
(module ORD_MAP-sig (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: ORD_MAP-sig)
       (SIGSigExp:
        (SEQSpec:
         (STRUCTURESpec: (StrDesc: (StrId: Key-struct) (IDSigExp: (SigId: ORD_KEY-sig))))
         (SEQSpec:
          (TYPESpec: (TypDec: (TyVarseq: (TyVar: |'a|)) (TyCon: map-type)))
          (SEQSpec:
           (VALSpec: (ValDesc: (VId: empty) (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))))
           (SEQSpec:
            (VALSpec:
             (ValDesc: (VId: isEmpty) (ARROWTy: (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
            (SEQSpec:
             (VALSpec:
              (ValDesc:
               (VId: singleton)
               (ARROWTy:
                (PARTy: (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|))))))
                (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)))))
             (SEQSpec:
              (VALSpec:
               (ValDesc:
                (VId: insert)
                (ARROWTy:
                 (RECORDTy:
                  (TyRow:
                   (Lab: |1|)
                   (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                   (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)) (TyRow: (Lab: |3|) (VARTy: (TyVar: |'a|))))))
                 (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)))))
              (SEQSpec:
               (VALSpec:
                (ValDesc:
                 (VId: |insert'|)
                 (ARROWTy:
                  (PARTy:
                   (RECORDTy:
                    (TyRow:
                     (Lab: |1|)
                     (PARTy: (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|))))))
                     (TyRow: (Lab: |2|) (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))))))
                  (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)))))
               (SEQSpec:
                (VALSpec:
                 (ValDesc:
                  (VId: find)
                  (ARROWTy:
                   (RECORDTy:
                    (TyRow:
                     (Lab: |1|)
                     (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                     (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)))))
                   (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: option-type)))))
                (SEQSpec:
                 (VALSpec:
                  (ValDesc:
                   (VId: inDomain)
                   (ARROWTy:
                    (PARTy:
                     (RECORDTy:
                      (TyRow:
                       (Lab: |1|)
                       (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                       (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type))))))
                    (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
                 (SEQSpec:
                  (VALSpec:
                   (ValDesc:
                    (VId: remove)
                    (ARROWTy:
                     (RECORDTy:
                      (TyRow:
                       (Lab: |1|)
                       (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                       (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)))))
                     (RECORDTy:
                      (TyRow: (Lab: |1|) (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|))))))))
                  (SEQSpec:
                   (VALSpec:
                    (ValDesc:
                     (VId: first)
                     (ARROWTy:
                      (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                      (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: option-type)))))
                   (SEQSpec:
                    (VALSpec:
                     (ValDesc:
                      (VId: firsti)
                      (ARROWTy:
                       (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                       (CONTy:
                        (Tyseq:
                         (PARTy: (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)))))))
                        (LongTyCon: option-type)))))
                    (SEQSpec:
                     (VALSpec:
                      (ValDesc:
                       (VId: numItems)
                       (ARROWTy: (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
                     (SEQSpec:
                      (VALSpec:
                       (ValDesc:
                        (VId: listItems)
                        (ARROWTy:
                         (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                         (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: list-type)))))
                      (SEQSpec:
                       (VALSpec:
                        (ValDesc:
                         (VId: listItemsi)
                         (ARROWTy:
                          (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                          (CONTy:
                           (Tyseq:
                            (PARTy:
                             (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)))))))
                           (LongTyCon: list-type)))))
                       (SEQSpec:
                        (VALSpec:
                         (ValDesc:
                          (VId: listKeys)
                          (ARROWTy:
                           (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                           (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type))) (LongTyCon: list-type)))))
                        (SEQSpec:
                         (VALSpec:
                          (ValDesc:
                           (VId: collate)
                           (ARROWTy:
                            (PARTy:
                             (ARROWTy:
                              (RECORDTy: (TyRow: (Lab: |1|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)))))
                              (CONTy: (Tyseq:) (LongTyCon: order-type))))
                            (ARROWTy:
                             (PARTy:
                              (RECORDTy:
                               (TyRow:
                                (Lab: |1|)
                                (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                (TyRow: (Lab: |2|) (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))))))
                             (CONTy: (Tyseq:) (LongTyCon: order-type))))))
                         (SEQSpec:
                          (VALSpec:
                           (ValDesc:
                            (VId: unionWith)
                            (ARROWTy:
                             (PARTy:
                              (ARROWTy:
                               (RECORDTy: (TyRow: (Lab: |1|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)))))
                               (VARTy: (TyVar: |'a|))))
                             (ARROWTy:
                              (PARTy:
                               (RECORDTy:
                                (TyRow:
                                 (Lab: |1|)
                                 (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                 (TyRow: (Lab: |2|) (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))))))
                              (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))))))
                          (SEQSpec:
                           (VALSpec:
                            (ValDesc:
                             (VId: unionWithi)
                             (ARROWTy:
                              (PARTy:
                               (ARROWTy:
                                (RECORDTy:
                                 (TyRow:
                                  (Lab: |1|)
                                  (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type))
                                  (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |3|) (VARTy: (TyVar: |'a|))))))
                                (VARTy: (TyVar: |'a|))))
                              (ARROWTy:
                               (PARTy:
                                (RECORDTy:
                                 (TyRow:
                                  (Lab: |1|)
                                  (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                  (TyRow: (Lab: |2|) (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))))))
                               (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))))))
                           (SEQSpec:
                            (VALSpec:
                             (ValDesc:
                              (VId: intersectWith)
                              (ARROWTy:
                               (PARTy:
                                (ARROWTy:
                                 (RECORDTy: (TyRow: (Lab: |1|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'b|)))))
                                 (VARTy: (TyVar: |'c|))))
                               (ARROWTy:
                                (PARTy:
                                 (RECORDTy:
                                  (TyRow:
                                   (Lab: |1|)
                                   (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                   (TyRow: (Lab: |2|) (CONTy: (Tyseq: (VARTy: (TyVar: |'b|))) (LongTyCon: map-type))))))
                                (CONTy: (Tyseq: (VARTy: (TyVar: |'c|))) (LongTyCon: map-type))))))
                            (SEQSpec:
                             (VALSpec:
                              (ValDesc:
                               (VId: intersectWithi)
                               (ARROWTy:
                                (PARTy:
                                 (ARROWTy:
                                  (RECORDTy:
                                   (TyRow:
                                    (Lab: |1|)
                                    (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type))
                                    (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |3|) (VARTy: (TyVar: |'b|))))))
                                  (VARTy: (TyVar: |'c|))))
                                (ARROWTy:
                                 (PARTy:
                                  (RECORDTy:
                                   (TyRow:
                                    (Lab: |1|)
                                    (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                    (TyRow: (Lab: |2|) (CONTy: (Tyseq: (VARTy: (TyVar: |'b|))) (LongTyCon: map-type))))))
                                 (CONTy: (Tyseq: (VARTy: (TyVar: |'c|))) (LongTyCon: map-type))))))
                             (SEQSpec:
                              (VALSpec:
                               (ValDesc:
                                (VId: app)
                                (ARROWTy:
                                 (PARTy: (ARROWTy: (VARTy: (TyVar: |'a|)) (CONTy: (Tyseq:) (LongTyCon: unit-type))))
                                 (ARROWTy: (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type))))))
                              (SEQSpec:
                               (VALSpec:
                                (ValDesc:
                                 (VId: appi)
                                 (ARROWTy:
                                  (PARTy:
                                   (ARROWTy:
                                    (PARTy:
                                     (RECORDTy:
                                      (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|))))))
                                    (CONTy: (Tyseq:) (LongTyCon: unit-type))))
                                  (ARROWTy: (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type))))))
                               (SEQSpec:
                                (VALSpec:
                                 (ValDesc:
                                  (VId: map)
                                  (ARROWTy:
                                   (PARTy: (ARROWTy: (VARTy: (TyVar: |'a|)) (VARTy: (TyVar: |'b|))))
                                   (ARROWTy:
                                    (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                    (CONTy: (Tyseq: (VARTy: (TyVar: |'b|))) (LongTyCon: map-type))))))
                                (SEQSpec:
                                 (VALSpec:
                                  (ValDesc:
                                   (VId: mapi)
                                   (ARROWTy:
                                    (PARTy:
                                     (ARROWTy:
                                      (RECORDTy:
                                       (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)))))
                                      (VARTy: (TyVar: |'b|))))
                                    (ARROWTy:
                                     (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                     (CONTy: (Tyseq: (VARTy: (TyVar: |'b|))) (LongTyCon: map-type))))))
                                 (SEQSpec:
                                  (VALSpec:
                                   (ValDesc:
                                    (VId: foldl)
                                    (ARROWTy:
                                     (PARTy:
                                      (ARROWTy:
                                       (RECORDTy: (TyRow: (Lab: |1|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'b|)))))
                                       (VARTy: (TyVar: |'b|))))
                                     (ARROWTy:
                                      (VARTy: (TyVar: |'b|))
                                      (ARROWTy: (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)) (VARTy: (TyVar: |'b|)))))))
                                  (SEQSpec:
                                   (VALSpec:
                                    (ValDesc:
                                     (VId: foldli)
                                     (ARROWTy:
                                      (PARTy:
                                       (ARROWTy:
                                        (RECORDTy:
                                         (TyRow:
                                          (Lab: |1|)
                                          (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type))
                                          (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |3|) (VARTy: (TyVar: |'b|))))))
                                        (VARTy: (TyVar: |'b|))))
                                      (ARROWTy:
                                       (VARTy: (TyVar: |'b|))
                                       (ARROWTy: (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)) (VARTy: (TyVar: |'b|)))))))
                                   (SEQSpec:
                                    (VALSpec:
                                     (ValDesc:
                                      (VId: foldr)
                                      (ARROWTy:
                                       (PARTy:
                                        (ARROWTy:
                                         (RECORDTy: (TyRow: (Lab: |1|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'b|)))))
                                         (VARTy: (TyVar: |'b|))))
                                       (ARROWTy:
                                        (VARTy: (TyVar: |'b|))
                                        (ARROWTy: (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)) (VARTy: (TyVar: |'b|)))))))
                                    (SEQSpec:
                                     (VALSpec:
                                      (ValDesc:
                                       (VId: foldri)
                                       (ARROWTy:
                                        (PARTy:
                                         (ARROWTy:
                                          (RECORDTy:
                                           (TyRow:
                                            (Lab: |1|)
                                            (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type))
                                            (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)) (TyRow: (Lab: |3|) (VARTy: (TyVar: |'b|))))))
                                          (VARTy: (TyVar: |'b|))))
                                        (ARROWTy:
                                         (VARTy: (TyVar: |'b|))
                                         (ARROWTy: (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type)) (VARTy: (TyVar: |'b|)))))))
                                     (SEQSpec:
                                      (VALSpec:
                                       (ValDesc:
                                        (VId: filter)
                                        (ARROWTy:
                                         (PARTy: (ARROWTy: (VARTy: (TyVar: |'a|)) (CONTy: (Tyseq:) (LongTyCon: bool-type))))
                                         (ARROWTy:
                                          (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                          (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))))))
                                      (SEQSpec:
                                       (VALSpec:
                                        (ValDesc:
                                         (VId: filteri)
                                         (ARROWTy:
                                          (PARTy:
                                           (ARROWTy:
                                            (RECORDTy:
                                             (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)))))
                                            (CONTy: (Tyseq:) (LongTyCon: bool-type))))
                                          (ARROWTy:
                                           (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                           (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))))))
                                       (SEQSpec:
                                        (VALSpec:
                                         (ValDesc:
                                          (VId: mapPartial)
                                          (ARROWTy:
                                           (PARTy: (ARROWTy: (VARTy: (TyVar: |'a|)) (CONTy: (Tyseq: (VARTy: (TyVar: |'b|))) (LongTyCon: option-type))))
                                           (ARROWTy:
                                            (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                            (CONTy: (Tyseq: (VARTy: (TyVar: |'b|))) (LongTyCon: map-type))))))
                                        (VALSpec:
                                         (ValDesc:
                                          (VId: mapPartiali)
                                          (ARROWTy:
                                           (PARTy:
                                            (ARROWTy:
                                             (RECORDTy:
                                              (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: Key.ord_key-type)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'a|)))))
                                             (CONTy: (Tyseq: (VARTy: (TyVar: |'b|))) (LongTyCon: option-type))))
                                           (ARROWTy:
                                            (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: map-type))
                                            (CONTy: (Tyseq: (VARTy: (TyVar: |'b|))) (LongTyCon: map-type))))))))))))))))))))))))))))))))))))))))))
    (Program: (STRDECTopDec: (EMPTYStrDec:))))))