lib/TextIO-sig.ss
(module TextIO-sig (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: TextIO-sig)
       (SIGSigExp:
        (SEQSpec:
         (VALSpec: (ValDesc: (VId: openIn) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: instream-type)))))
         (SEQSpec:
          (VALSpec: (ValDesc: (VId: closeIn) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
          (SEQSpec:
           (VALSpec: (ValDesc: (VId: input) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq:) (LongTyCon: vector-type)))))
           (SEQSpec:
            (VALSpec: (ValDesc: (VId: inputAll) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq:) (LongTyCon: vector-type)))))
            (SEQSpec:
             (VALSpec:
              (ValDesc:
               (VId: inputNoBlock)
               (ARROWTy:
                (CONTy: (Tyseq:) (LongTyCon: instream-type))
                (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: vector-type))) (LongTyCon: option-type)))))
             (SEQSpec:
              (VALSpec:
               (ValDesc:
                (VId: input1)
                (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: elem-type))) (LongTyCon: option-type)))))
              (SEQSpec:
               (VALSpec:
                (ValDesc:
                 (VId: inputN)
                 (ARROWTy:
                  (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: instream-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
                  (CONTy: (Tyseq:) (LongTyCon: vector-type)))))
               (SEQSpec:
                (VALSpec: (ValDesc: (VId: inputLine) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
                (SEQSpec:
                 (VALSpec: (ValDesc: (VId: endOfStream) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
                 (SEQSpec:
                  (VALSpec:
                   (ValDesc:
                    (VId: lookahead)
                    (ARROWTy:
                     (CONTy: (Tyseq:) (LongTyCon: instream-type))
                     (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: elem-type))) (LongTyCon: option-type)))))
                  (SEQSpec:
                   (VALSpec:
                    (ValDesc:
                     (VId: scanStream)
                     (ARROWTy:
                      (PARTy:
                       (ARROWTy:
                        (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: char-type)) (CONTy: (Tyseq:) (LongTyCon: cs-type))) (LongTyCon: StringCvt.reader-type))
                        (CONTy: (Tyseq: (VARTy: (TyVar: |'a|)) (CONTy: (Tyseq:) (LongTyCon: cs-type))) (LongTyCon: StringCvt.reader-type))))
                      (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: instream-type)) (CONTy: (Tyseq: (VARTy: (TyVar: |'a|))) (LongTyCon: option-type))))))
                   (SEQSpec:
                    (VALSpec: (ValDesc: (VId: stdIn) (CONTy: (Tyseq:) (LongTyCon: instream-type))))
                    (SEQSpec:
                     (VALSpec: (ValDesc: (VId: openOut) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: outstream-type)))))
                     (SEQSpec:
                      (VALSpec:
                       (ValDesc: (VId: openAppend) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: outstream-type)))))
                      (SEQSpec:
                       (VALSpec:
                        (ValDesc: (VId: closeOut) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: outstream-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type)))))
                       (SEQSpec:
                        (VALSpec:
                         (ValDesc:
                          (VId: output)
                          (ARROWTy:
                           (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:
                            (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: outputSubstr)
                            (ARROWTy:
                             (RECORDTy:
                              (TyRow:
                               (Lab: |1|)
                               (CONTy: (Tyseq:) (LongTyCon: outstream-type))
                               (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: substring-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: stdOut) (CONTy: (Tyseq:) (LongTyCon: outstream-type))))
                            (SEQSpec:
                             (VALSpec: (ValDesc: (VId: stdErr) (CONTy: (Tyseq:) (LongTyCon: outstream-type))))
                             (VALSpec:
                              (ValDesc:
                               (VId: print)
                               (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: string-type)) (CONTy: (Tyseq:) (LongTyCon: unit-type)))))))))))))))))))))))))))))))))