lib/STREAM_IO-sig.ss
(module STREAM_IO-sig (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: STREAM_IO-sig)
       (SIGSigExp:
        (SEQSpec:
         (TYPESpec: (TypDec: (TyVarseq:) (TyCon: elem-type)))
         (SEQSpec:
          (TYPESpec: (TypDec: (TyVarseq:) (TyCon: vector-type)))
          (SEQSpec:
           (TYPESpec: (TypDec: (TyVarseq:) (TyCon: reader-type)))
           (SEQSpec:
            (TYPESpec: (TypDec: (TyVarseq:) (TyCon: writer-type)))
            (SEQSpec:
             (TYPESpec: (TypDec: (TyVarseq:) (TyCon: instream-type)))
             (SEQSpec:
              (TYPESpec: (TypDec: (TyVarseq:) (TyCon: outstream-type)))
              (SEQSpec:
               (TYPESpec: (TypDec: (TyVarseq:) (TyCon: in_pos-type)))
               (SEQSpec:
                (TYPESpec: (TypDec: (TyVarseq:) (TyCon: out_pos-type)))
                (SEQSpec:
                 (TYPESpec: (TypDec: (TyVarseq:) (TyCon: pos-type)))
                 (SEQSpec:
                  (VALSpec:
                   (ValDesc:
                    (VId: input)
                    (ARROWTy:
                     (CONTy: (Tyseq:) (LongTyCon: instream-type))
                     (PARTy:
                      (RECORDTy:
                       (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: vector-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: instream-type)))))))))
                  (SEQSpec:
                   (VALSpec:
                    (ValDesc:
                     (VId: input1)
                     (ARROWTy:
                      (CONTy: (Tyseq:) (LongTyCon: instream-type))
                      (CONTy:
                       (Tyseq:
                        (PARTy:
                         (RECORDTy:
                          (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: elem-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: instream-type)))))))
                       (LongTyCon: option-type)))))
                   (SEQSpec:
                    (VALSpec:
                     (ValDesc:
                      (VId: inputN)
                      (ARROWTy:
                       (PARTy:
                        (RECORDTy:
                         (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: instream-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type))))))
                       (PARTy:
                        (RECORDTy:
                         (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: vector-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: instream-type)))))))))
                    (SEQSpec:
                     (VALSpec: (ValDesc: (VId: inputAll) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq:) (LongTyCon: vector-type)))))
                     (SEQSpec:
                      (VALSpec:
                       (ValDesc:
                        (VId: canInput)
                        (ARROWTy:
                         (PARTy:
                          (RECORDTy:
                           (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: instream-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type))))))
                         (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: int-type))) (LongTyCon: option-type)))))
                      (SEQSpec:
                       (VALSpec: (ValDesc: (VId: closeIn) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                       (SEQSpec:
                        (VALSpec:
                         (ValDesc: (VId: endOfStream) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
                        (SEQSpec:
                         (VALSpec:
                          (ValDesc:
                           (VId: mkInstream)
                           (ARROWTy:
                            (PARTy:
                             (RECORDTy:
                              (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: reader-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: vector-type))))))
                            (CONTy: (Tyseq:) (LongTyCon: instream-type)))))
                         (SEQSpec:
                          (VALSpec:
                           (ValDesc:
                            (VId: getReader)
                            (ARROWTy:
                             (CONTy: (Tyseq:) (LongTyCon: instream-type))
                             (PARTy:
                              (RECORDTy:
                               (TyRow:
                                (Lab: |1|)
                                (CONTy: (Tyseq:) (LongTyCon: reader-type))
                                (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: vector-type)))))))))
                          (SEQSpec:
                           (VALSpec:
                            (ValDesc: (VId: getPosIn) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq:) (LongTyCon: in_pos-type)))))
                           (SEQSpec:
                            (VALSpec:
                             (ValDesc: (VId: setPosIn) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: in_pos-type)) (CONTy: (Tyseq:) (LongTyCon: instream-type)))))
                            (SEQSpec:
                             (VALSpec:
                              (ValDesc: (VId: filePosIn) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: in_pos-type)) (CONTy: (Tyseq:) (LongTyCon: pos-type)))))
                             (SEQSpec:
                              (VALSpec:
                               (ValDesc:
                                (VId: output)
                                (ARROWTy:
                                 (PARTy:
                                  (RECORDTy:
                                   (TyRow:
                                    (Lab: |1|)
                                    (CONTy: (Tyseq:) (LongTyCon: outstream-type))
                                    (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: vector-type))))))
                                 (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                              (SEQSpec:
                               (VALSpec:
                                (ValDesc:
                                 (VId: output1)
                                 (ARROWTy:
                                  (PARTy:
                                   (RECORDTy:
                                    (TyRow:
                                     (Lab: |1|)
                                     (CONTy: (Tyseq:) (LongTyCon: outstream-type))
                                     (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: elem-type))))))
                                  (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                               (SEQSpec:
                                (VALSpec:
                                 (ValDesc:
                                  (VId: flushOut)
                                  (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: outstream-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                                (SEQSpec:
                                 (VALSpec:
                                  (ValDesc:
                                   (VId: closeOut)
                                   (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: outstream-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                                 (SEQSpec:
                                  (VALSpec:
                                   (ValDesc:
                                    (VId: setBufferMode)
                                    (ARROWTy:
                                     (PARTy:
                                      (RECORDTy:
                                       (TyRow:
                                        (Lab: |1|)
                                        (CONTy: (Tyseq:) (LongTyCon: outstream-type))
                                        (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: IO.buffer_mode-type))))))
                                     (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                                  (SEQSpec:
                                   (VALSpec:
                                    (ValDesc:
                                     (VId: getBufferMode)
                                     (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: outstream-type)) (CONTy: (Tyseq:) (LongTyCon: IO.buffer_mode-type)))))
                                   (SEQSpec:
                                    (VALSpec:
                                     (ValDesc:
                                      (VId: mkOutstream)
                                      (ARROWTy:
                                       (PARTy:
                                        (RECORDTy:
                                         (TyRow:
                                          (Lab: |1|)
                                          (CONTy: (Tyseq:) (LongTyCon: writer-type))
                                          (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: IO.buffer_mode-type))))))
                                       (CONTy: (Tyseq:) (LongTyCon: outstream-type)))))
                                    (SEQSpec:
                                     (VALSpec:
                                      (ValDesc:
                                       (VId: getWriter)
                                       (ARROWTy:
                                        (CONTy: (Tyseq:) (LongTyCon: outstream-type))
                                        (PARTy:
                                         (RECORDTy:
                                          (TyRow:
                                           (Lab: |1|)
                                           (CONTy: (Tyseq:) (LongTyCon: writer-type))
                                           (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: IO.buffer_mode-type)))))))))
                                     (SEQSpec:
                                      (VALSpec:
                                       (ValDesc:
                                        (VId: getPosOut)
                                        (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: outstream-type)) (CONTy: (Tyseq:) (LongTyCon: out_pos-type)))))
                                      (SEQSpec:
                                       (VALSpec:
                                        (ValDesc:
                                         (VId: setPosOut)
                                         (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: out_pos-type)) (CONTy: (Tyseq:) (LongTyCon: outstream-type)))))
                                       (VALSpec:
                                        (ValDesc:
                                         (VId: filePosOut)
                                         (ARROWTy:
                                          (CONTy: (Tyseq:) (LongTyCon: out_pos-type))
                                          (CONTy: (Tyseq:) (LongTyCon: pos-type)))))))))))))))))))))))))))))))))))))))))))