hamlet/LR_PARSER-sig.ss
(module LR_PARSER-sig (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: LR_PARSER-sig)
       (SIGSigExp:
        (SEQSpec:
         (SHARINGTYPESpec:
          (SHARINGTYPESpec:
           (SHARINGTYPESpec:
            (SHARINGTYPESpec:
             (SHARINGTYPESpec:
              (SHARINGTYPESpec:
               (SEQSpec:
                (STRUCTURESpec: (StrDesc: (StrId: Stream-struct) (IDSigExp: (SigId: STREAM-sig))))
                (SEQSpec:
                 (STRUCTURESpec: (StrDesc: (StrId: LrTable-struct) (IDSigExp: (SigId: LR_TABLE-sig))))
                 (STRUCTURESpec: (StrDesc: (StrId: Token-struct) (IDSigExp: (SigId: TOKEN-sig))))))
               (LongTyCon: LrTable.pairlist-type)
               (LongTyCon: Token.LrTable.pairlist-type))
              (LongTyCon: LrTable.state-type)
              (LongTyCon: Token.LrTable.state-type))
             (LongTyCon: LrTable.term-type)
             (LongTyCon: Token.LrTable.term-type))
            (LongTyCon: LrTable.nonterm-type)
            (LongTyCon: Token.LrTable.nonterm-type))
           (LongTyCon: LrTable.action-type)
           (LongTyCon: Token.LrTable.action-type))
          (LongTyCon: LrTable.table-type)
          (LongTyCon: Token.LrTable.table-type))
         (SEQSpec:
          (EXCEPTIONSpec: (ExDesc: (VId: ParseError)))
          (VALSpec:
           (ValDesc:
            (VId: parse)
            (ARROWTy:
             (RECORDTy:
              (TyRow:
               (Lab: table)
               (CONTy: (Tyseq:) (LongTyCon: LrTable.table-type))
               (TyRow:
                (Lab: lexer)
                (CONTy:
                 (Tyseq: (CONTy: (Tyseq: (VARTy: (TyVar: |'_b|)) (VARTy: (TyVar: |'_c|))) (LongTyCon: Token.token-type)))
                 (LongTyCon: Stream.stream-type))
                (TyRow:
                 (Lab: arg)
                 (VARTy: (TyVar: |'arg|))
                 (TyRow:
                  (Lab: saction)
                  (ARROWTy:
                   (RECORDTy:
                    (TyRow:
                     (Lab: |1|)
                     (CONTy: (Tyseq:) (LongTyCon: int-type))
                     (TyRow:
                      (Lab: |2|)
                      (VARTy: (TyVar: |'_c|))
                      (TyRow:
                       (Lab: |3|)
                       (CONTy:
                        (Tyseq:
                         (PARTy:
                          (RECORDTy:
                           (TyRow:
                            (Lab: |1|)
                            (CONTy: (Tyseq:) (LongTyCon: LrTable.state-type))
                            (TyRow:
                             (Lab: |2|)
                             (PARTy:
                              (RECORDTy:
                               (TyRow:
                                (Lab: |1|)
                                (VARTy: (TyVar: |'_b|))
                                (TyRow: (Lab: |2|) (VARTy: (TyVar: |'_c|)) (TyRow: (Lab: |3|) (VARTy: (TyVar: |'_c|))))))))))))
                        (LongTyCon: list-type))
                       (TyRow: (Lab: |4|) (VARTy: (TyVar: |'arg|)))))))
                   (RECORDTy:
                    (TyRow:
                     (Lab: |1|)
                     (CONTy: (Tyseq:) (LongTyCon: LrTable.nonterm-type))
                     (TyRow:
                      (Lab: |2|)
                      (PARTy:
                       (RECORDTy:
                        (TyRow: (Lab: |1|) (VARTy: (TyVar: |'_b|)) (TyRow: (Lab: |2|) (VARTy: (TyVar: |'_c|)) (TyRow: (Lab: |3|) (VARTy: (TyVar: |'_c|)))))))
                      (TyRow:
                       (Lab: |3|)
                       (PARTy:
                        (CONTy:
                         (Tyseq:
                          (PARTy:
                           (RECORDTy:
                            (TyRow:
                             (Lab: |1|)
                             (CONTy: (Tyseq:) (LongTyCon: LrTable.state-type))
                             (TyRow:
                              (Lab: |2|)
                              (PARTy:
                               (RECORDTy:
                                (TyRow:
                                 (Lab: |1|)
                                 (VARTy: (TyVar: |'_b|))
                                 (TyRow: (Lab: |2|) (VARTy: (TyVar: |'_c|)) (TyRow: (Lab: |3|) (VARTy: (TyVar: |'_c|))))))))))))
                         (LongTyCon: list-type))))))))
                  (TyRow:
                   (Lab: void)
                   (VARTy: (TyVar: |'_b|))
                   (TyRow:
                    (Lab: ec)
                    (RECORDTy:
                     (TyRow:
                      (Lab: is_keyword)
                      (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: LrTable.term-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type)))
                      (TyRow:
                       (Lab: noShift)
                       (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: LrTable.term-type)) (CONTy: (Tyseq:) (LongTyCon: bool-type)))
                       (TyRow:
                        (Lab: preferred_change)
                        (CONTy:
                         (Tyseq:
                          (PARTy:
                           (RECORDTy:
                            (TyRow:
                             (Lab: |1|)
                             (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: LrTable.term-type))) (LongTyCon: list-type))
                             (TyRow: (Lab: |2|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: LrTable.term-type))) (LongTyCon: list-type)))))))
                         (LongTyCon: list-type))
                        (TyRow:
                         (Lab: errtermvalue)
                         (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: LrTable.term-type)) (VARTy: (TyVar: |'_b|)))
                         (TyRow:
                          (Lab: showTerminal)
                          (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: LrTable.term-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))
                          (TyRow:
                           (Lab: terms)
                           (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: LrTable.term-type))) (LongTyCon: list-type))
                           (TyRow:
                            (Lab: error)
                            (ARROWTy:
                             (RECORDTy:
                              (TyRow:
                               (Lab: |1|)
                               (CONTy: (Tyseq:) (LongTyCon: string-type))
                               (TyRow: (Lab: |2|) (VARTy: (TyVar: |'_c|)) (TyRow: (Lab: |3|) (VARTy: (TyVar: |'_c|))))))
                             (CONTy: (Tyseq:) (LongTyCon: unit-type)))))))))))
                    (TyRow: (Lab: lookahead) (CONTy: (Tyseq:) (LongTyCon: int-type))))))))))
             (RECORDTy:
              (TyRow:
               (Lab: |1|)
               (VARTy: (TyVar: |'_b|))
               (TyRow:
                (Lab: |2|)
                (PARTy:
                 (CONTy:
                  (Tyseq: (CONTy: (Tyseq: (VARTy: (TyVar: |'_b|)) (VARTy: (TyVar: |'_c|))) (LongTyCon: Token.token-type)))
                  (LongTyCon: Stream.stream-type))))))))))))))))))