lib/Word8-struct.ss
(module Word8-struct (planet chongkai/sml)
  (#%module-begin
   (Program:
    (SIGDECTopDec:
     (SigDec:
      (SigBind:
       (SigId: WORD-sig)
       (SIGSigExp:
        (SEQSpec:
         (SEQSpec:
          (INCLUDESpec:
           (WHERETYPESigExp:
            (SIGSigExp: (TYPESpec: (TypDec: (TyVarseq:) (TyCon: word-type))))
            (TyVarseq:)
            (LongTyCon: word-type)
            (CONTy: (Tyseq:) (LongTyCon: word8-type))))
          (EMPTYSpec:))
         (SEQSpec:
          (VALSpec: (ValDesc: (VId: wordSize) (CONTy: (Tyseq:) (LongTyCon: int-type))))
          (SEQSpec:
           (VALSpec:
            (ValDesc:
             (VId: orb)
             (ARROWTy:
              (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
              (CONTy: (Tyseq:) (LongTyCon: word-type)))))
           (SEQSpec:
            (VALSpec:
             (ValDesc:
              (VId: andb)
              (ARROWTy:
               (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
               (CONTy: (Tyseq:) (LongTyCon: word-type)))))
            (SEQSpec:
             (VALSpec:
              (ValDesc:
               (VId: xorb)
               (ARROWTy:
                (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                (CONTy: (Tyseq:) (LongTyCon: word-type)))))
             (SEQSpec:
              (VALSpec: (ValDesc: (VId: notb) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: word-type)) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
              (SEQSpec:
               (VALSpec:
                (ValDesc:
                 (VId: <<)
                 (ARROWTy:
                  (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Word.word-type)))))
                  (CONTy: (Tyseq:) (LongTyCon: word-type)))))
               (SEQSpec:
                (VALSpec:
                 (ValDesc:
                  (VId: >>)
                  (ARROWTy:
                   (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Word.word-type)))))
                   (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                (SEQSpec:
                 (VALSpec:
                  (ValDesc:
                   (VId: ~>>)
                   (ARROWTy:
                    (RECORDTy:
                     (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Word.word-type)))))
                    (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                 (SEQSpec:
                  (VALSpec:
                   (ValDesc:
                    (VId: +)
                    (ARROWTy:
                     (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                     (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                  (SEQSpec:
                   (VALSpec:
                    (ValDesc:
                     (VId: -)
                     (ARROWTy:
                      (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                      (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                   (SEQSpec:
                    (VALSpec:
                     (ValDesc:
                      (VId: *)
                      (ARROWTy:
                       (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                       (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                    (SEQSpec:
                     (VALSpec:
                      (ValDesc:
                       (VId: div)
                       (ARROWTy:
                        (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                        (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                     (SEQSpec:
                      (VALSpec:
                       (ValDesc:
                        (VId: mod)
                        (ARROWTy:
                         (RECORDTy:
                          (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                         (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                      (SEQSpec:
                       (VALSpec:
                        (ValDesc:
                         (VId: >)
                         (ARROWTy:
                          (RECORDTy:
                           (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                          (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
                       (SEQSpec:
                        (VALSpec:
                         (ValDesc:
                          (VId: <)
                          (ARROWTy:
                           (RECORDTy:
                            (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                           (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
                        (SEQSpec:
                         (VALSpec:
                          (ValDesc:
                           (VId: >=)
                           (ARROWTy:
                            (RECORDTy:
                             (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                            (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
                         (SEQSpec:
                          (VALSpec:
                           (ValDesc:
                            (VId: <=)
                            (ARROWTy:
                             (RECORDTy:
                              (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                             (CONTy: (Tyseq:) (LongTyCon: bool-type)))))
                          (SEQSpec:
                           (VALSpec:
                            (ValDesc:
                             (VId: compare)
                             (ARROWTy:
                              (RECORDTy:
                               (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                              (CONTy: (Tyseq:) (LongTyCon: order-type)))))
                           (SEQSpec:
                            (VALSpec:
                             (ValDesc:
                              (VId: min)
                              (ARROWTy:
                               (RECORDTy:
                                (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                               (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                            (SEQSpec:
                             (VALSpec:
                              (ValDesc:
                               (VId: max)
                               (ARROWTy:
                                (RECORDTy:
                                 (TyRow: (Lab: |1|) (CONTy: (Tyseq:) (LongTyCon: word-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                                (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                             (SEQSpec:
                              (VALSpec:
                               (ValDesc: (VId: toString) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: word-type)) (CONTy: (Tyseq:) (LongTyCon: string-type)))))
                              (SEQSpec:
                               (VALSpec:
                                (ValDesc:
                                 (VId: fromString)
                                 (ARROWTy:
                                  (CONTy: (Tyseq:) (LongTyCon: string-type))
                                  (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: word-type))) (LongTyCon: option-type)))))
                               (SEQSpec:
                                (VALSpec:
                                 (ValDesc:
                                  (VId: scan)
                                  (ARROWTy:
                                   (CONTy: (Tyseq:) (LongTyCon: StringCvt.radix-type))
                                   (ARROWTy:
                                    (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: char-type)) (VARTy: (TyVar: |'a|))) (LongTyCon: StringCvt.reader-type))
                                    (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: word-type)) (VARTy: (TyVar: |'a|))) (LongTyCon: StringCvt.reader-type))))))
                                (SEQSpec:
                                 (VALSpec:
                                  (ValDesc:
                                   (VId: fmt)
                                   (ARROWTy:
                                    (CONTy: (Tyseq:) (LongTyCon: StringCvt.radix-type))
                                    (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: word-type)) (CONTy: (Tyseq:) (LongTyCon: string-type))))))
                                 (SEQSpec:
                                  (VALSpec:
                                   (ValDesc: (VId: toInt) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: word-type)) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
                                  (SEQSpec:
                                   (VALSpec:
                                    (ValDesc: (VId: toIntX) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: word-type)) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
                                   (SEQSpec:
                                    (VALSpec:
                                     (ValDesc: (VId: fromInt) (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: int-type)) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                                    (SEQSpec:
                                     (VALSpec:
                                      (ValDesc:
                                       (VId: toLargeInt)
                                       (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: word-type)) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
                                     (SEQSpec:
                                      (VALSpec:
                                       (ValDesc:
                                        (VId: toLargeIntX)
                                        (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: word-type)) (CONTy: (Tyseq:) (LongTyCon: int-type)))))
                                      (SEQSpec:
                                       (VALSpec:
                                        (ValDesc:
                                         (VId: fromLargeInt)
                                         (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: int-type)) (CONTy: (Tyseq:) (LongTyCon: word-type)))))
                                       (SEQSpec:
                                        (VALSpec:
                                         (ValDesc:
                                          (VId: toLargeWord)
                                          (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: word-type)) (CONTy: (Tyseq:) (LongTyCon: Word.word-type)))))
                                        (SEQSpec:
                                         (VALSpec:
                                          (ValDesc:
                                           (VId: toLargeWordX)
                                           (ARROWTy: (CONTy: (Tyseq:) (LongTyCon: word-type)) (CONTy: (Tyseq:) (LongTyCon: Word.word-type)))))
                                         (VALSpec:
                                          (ValDesc:
                                           (VId: fromLargeWord)
                                           (ARROWTy:
                                            (CONTy: (Tyseq:) (LongTyCon: Word.word-type))
                                            (CONTy: (Tyseq:) (LongTyCon: word-type)))))))))))))))))))))))))))))))))))))))))
     (STRDECTopDec:
      (STRUCTUREStrDec:
       (StrBind:
        (StrId: Word8-struct)
        (SEALStrExp:
         (STRUCTStrExp:
          (SEQStrDec:
           (SEQStrDec:
            (LOCALStrDec:
             (SEQStrDec:
              (SEQStrDec:
               (SEQStrDec:
                (SEQStrDec:
                 (DECStrDec: (OPENDec: (LongStrId: StringCvt-struct)))
                 (SEQStrDec:
                  (DECStrDec:
                   (VALDec:
                    (TyVarseq:)
                    (RECValBind:
                     (PLAINValBind:
                      (ATPat: (IDAtPat: (LongVId: skipWSget)))
                      (FNExp:
                       (Match:
                        (Mrule:
                         (ATPat: (IDAtPat: (LongVId: _id10542)))
                         (FNExp:
                          (Match:
                           (Mrule:
                            (ATPat: (IDAtPat: (LongVId: _id10543)))
                            (APPExp:
                             (ATExp:
                              (PARAtExp:
                               (FNExp:
                                (Match:
                                 (Mrule:
                                  (ATPat:
                                   (RECORDAtPat:
                                    (FIELDPatRow:
                                     (Lab: |1|)
                                     (ATPat: (IDAtPat: (LongVId: getc)))
                                     (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: source)))))))
                                  (ATExp:
                                   (PARAtExp:
                                    (APPExp:
                                     (ATExp: (IDAtExp: (LongVId: getc)))
                                     (PARAtExp:
                                      (ATExp:
                                       (PARAtExp:
                                        (APPExp:
                                         (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: skipWS))) (IDAtExp: (LongVId: getc)))))
                                         (IDAtExp: (LongVId: source))))))))))))))
                             (PARAtExp:
                              (ATExp:
                               (RECORDAtExp:
                                (ExpRow:
                                 (Lab: |1|)
                                 (ATExp: (IDAtExp: (LongVId: _id10542)))
                                 (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10543)))))))))))))))))))
                  (DECStrDec:
                   (VALDec:
                    (TyVarseq:)
                    (RECValBind:
                     (PLAINValBind:
                      (ATPat: (IDAtPat: (LongVId: decval)))
                      (FNExp:
                       (Match:
                        (Mrule:
                         (ATPat: (IDAtPat: (LongVId: _id10544)))
                         (APPExp:
                          (ATExp:
                           (PARAtExp:
                            (FNExp:
                             (Match:
                              (Mrule:
                               (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: c)))))
                               (ATExp:
                                (PARAtExp:
                                 (APPExp:
                                  (ATExp: (IDAtExp: (LongVId: -)))
                                  (RECORDAtExp:
                                   (ExpRow:
                                    (Lab: |1|)
                                    (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ord))) (IDAtExp: (LongVId: c)))))
                                    (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 48))))))))))))))
                          (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10544))))))))))))))))
                (SEQStrDec:
                 (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
                 (DECStrDec:
                  (VALDec:
                   (TyVarseq:)
                   (RECValBind:
                    (PLAINValBind:
                     (ATPat: (IDAtPat: (LongVId: hexval)))
                     (FNExp:
                      (Match:
                       (Mrule:
                        (ATPat: (IDAtPat: (LongVId: _id10545)))
                        (APPExp:
                         (ATExp:
                          (PARAtExp:
                           (FNExp:
                            (Match:
                             (Mrule:
                              (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: c)))))
                              (APPExp:
                               (ATExp:
                                (PARAtExp:
                                 (FNExp:
                                  (Match:
                                   (Mrule:
                                    (ATPat: (IDAtPat: (LongVId: true)))
                                    (ATExp:
                                     (PARAtExp:
                                      (APPExp:
                                       (ATExp: (IDAtExp: (LongVId: -)))
                                       (RECORDAtExp:
                                        (ExpRow:
                                         (Lab: |1|)
                                         (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ord))) (IDAtExp: (LongVId: c)))))
                                         (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 48))))))))))
                                   (Match:
                                    (Mrule:
                                     (ATPat: (IDAtPat: (LongVId: false)))
                                     (ATExp:
                                      (PARAtExp:
                                       (APPExp:
                                        (ATExp: (IDAtExp: (LongVId: mod)))
                                        (RECORDAtExp:
                                         (ExpRow:
                                          (Lab: |1|)
                                          (ATExp:
                                           (PARAtExp:
                                            (ATExp:
                                             (PARAtExp:
                                              (APPExp:
                                               (ATExp: (IDAtExp: (LongVId: -)))
                                               (RECORDAtExp:
                                                (ExpRow:
                                                 (Lab: |1|)
                                                 (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ord))) (IDAtExp: (LongVId: c)))))
                                                 (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 55)))))))))))
                                          (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 32)))))))))))))))
                               (PARAtExp:
                                (APPExp:
                                 (ATExp:
                                  (PARAtExp:
                                   (FNExp:
                                    (Match:
                                     (Mrule:
                                      (ATPat: (IDAtPat: (LongVId: true)))
                                      (ATExp:
                                       (PARAtExp:
                                        (APPExp:
                                         (ATExp: (IDAtExp: (LongVId: <=)))
                                         (RECORDAtExp:
                                          (ExpRow:
                                           (Lab: |1|)
                                           (ATExp: (IDAtExp: (LongVId: c)))
                                           (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (CHARSCon: #\9))))))))))
                                     (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
                                 (PARAtExp:
                                  (ATExp:
                                   (PARAtExp:
                                    (APPExp:
                                     (ATExp: (IDAtExp: (LongVId: <=)))
                                     (RECORDAtExp:
                                      (ExpRow:
                                       (Lab: |1|)
                                       (ATExp: (SCONAtExp: (CHARSCon: #\0)))
                                       (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: c))))))))))))))))))
                         (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10545))))))))))))))))
               (SEQStrDec:
                (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
                (DECStrDec:
                 (VALDec:
                  (TyVarseq:)
                  (RECValBind:
                   (PLAINValBind:
                    (ATPat: (IDAtPat: (LongVId: prhex)))
                    (FNExp:
                     (Match:
                      (Mrule:
                       (ATPat: (IDAtPat: (LongVId: _id10546)))
                       (APPExp:
                        (ATExp:
                         (PARAtExp:
                          (FNExp:
                           (Match:
                            (Mrule:
                             (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: i)))))
                             (APPExp:
                              (ATExp:
                               (PARAtExp:
                                (FNExp:
                                 (Match:
                                  (Mrule:
                                   (ATPat: (IDAtPat: (LongVId: true)))
                                   (ATExp:
                                    (PARAtExp:
                                     (APPExp:
                                      (ATExp: (IDAtExp: (LongVId: chr)))
                                      (PARAtExp:
                                       (ATExp:
                                        (PARAtExp:
                                         (APPExp:
                                          (ATExp: (IDAtExp: (LongVId: +)))
                                          (RECORDAtExp:
                                           (ExpRow:
                                            (Lab: |1|)
                                            (ATExp: (IDAtExp: (LongVId: i)))
                                            (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 48))))))))))))))
                                  (Match:
                                   (Mrule:
                                    (ATPat: (IDAtPat: (LongVId: false)))
                                    (ATExp:
                                     (PARAtExp:
                                      (APPExp:
                                       (ATExp: (IDAtExp: (LongVId: chr)))
                                       (PARAtExp:
                                        (ATExp:
                                         (PARAtExp:
                                          (APPExp:
                                           (ATExp: (IDAtExp: (LongVId: +)))
                                           (RECORDAtExp:
                                            (ExpRow:
                                             (Lab: |1|)
                                             (ATExp: (IDAtExp: (LongVId: i)))
                                             (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 55)))))))))))))))))))
                              (PARAtExp:
                               (ATExp:
                                (PARAtExp:
                                 (APPExp:
                                  (ATExp: (IDAtExp: (LongVId: <)))
                                  (RECORDAtExp:
                                   (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 10))))))))))))))))
                        (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10546))))))))))))))))
              (SEQStrDec:
               (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))
               (DECStrDec:
                (VALDec:
                 (TyVarseq:)
                 (RECValBind:
                  (PLAINValBind:
                   (ATPat: (IDAtPat: (LongVId: conv)))
                   (FNExp:
                    (Match:
                     (Mrule:
                      (ATPat: (IDAtPat: (LongVId: _id10550)))
                      (FNExp:
                       (Match:
                        (Mrule:
                         (ATPat: (IDAtPat: (LongVId: _id10551)))
                         (APPExp:
                          (ATExp:
                           (PARAtExp:
                            (FNExp:
                             (Match:
                              (Mrule:
                               (ATPat:
                                (RECORDAtPat:
                                 (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: radix))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: w)))))))
                               (ATExp:
                                (LETAtExp:
                                 (SEQDec:
                                  (VALDec:
                                   (TyVarseq:)
                                   (RECValBind:
                                    (PLAINValBind:
                                     (ATPat: (IDAtPat: (LongVId: h)))
                                     (FNExp:
                                      (Match:
                                       (Mrule:
                                        (ATPat: (IDAtPat: (LongVId: _id10547)))
                                        (FNExp:
                                         (Match:
                                          (Mrule:
                                           (ATPat: (IDAtPat: (LongVId: _id10548)))
                                           (APPExp:
                                            (ATExp:
                                             (PARAtExp:
                                              (FNExp:
                                               (Match:
                                                (Mrule:
                                                 (ATPat:
                                                  (RECORDAtPat:
                                                   (FIELDPatRow:
                                                    (Lab: |1|)
                                                    (ATPat: (IDAtPat: (LongVId: n)))
                                                    (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: res)))))))
                                                 (APPExp:
                                                  (ATExp:
                                                   (PARAtExp:
                                                    (FNExp:
                                                     (Match:
                                                      (Mrule: (ATPat: (IDAtPat: (LongVId: true))) (ATExp: (IDAtExp: (LongVId: res))))
                                                      (Match:
                                                       (Mrule:
                                                        (ATPat: (IDAtPat: (LongVId: false)))
                                                        (ATExp:
                                                         (PARAtExp:
                                                          (APPExp:
                                                           (ATExp:
                                                            (PARAtExp:
                                                             (APPExp:
                                                              (ATExp: (IDAtExp: (LongVId: h)))
                                                              (PARAtExp:
                                                               (ATExp:
                                                                (PARAtExp:
                                                                 (APPExp:
                                                                  (ATExp: (IDAtExp: (LongVId: div)))
                                                                  (RECORDAtExp:
                                                                   (ExpRow:
                                                                    (Lab: |1|)
                                                                    (ATExp: (IDAtExp: (LongVId: n)))
                                                                    (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: radix)))))))))))))
                                                           (PARAtExp:
                                                            (ATExp:
                                                             (PARAtExp:
                                                              (APPExp:
                                                               (ATExp: (IDAtExp: (LongVId: ::)))
                                                               (RECORDAtExp:
                                                                (ExpRow:
                                                                 (Lab: |1|)
                                                                 (ATExp:
                                                                  (PARAtExp:
                                                                   (APPExp:
                                                                    (ATExp: (IDAtExp: (LongVId: prhex)))
                                                                    (PARAtExp:
                                                                     (ATExp:
                                                                      (PARAtExp:
                                                                       (APPExp:
                                                                        (ATExp: (IDAtExp: (LongVId: mod)))
                                                                        (RECORDAtExp:
                                                                         (ExpRow:
                                                                          (Lab: |1|)
                                                                          (ATExp: (IDAtExp: (LongVId: n)))
                                                                          (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: radix)))))))))))))
                                                                 (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: res)))))))))))))))))))
                                                  (PARAtExp:
                                                   (ATExp:
                                                    (PARAtExp:
                                                     (APPExp:
                                                      (ATExp: (IDAtExp: (LongVId: =)))
                                                      (RECORDAtExp:
                                                       (ExpRow:
                                                        (Lab: |1|)
                                                        (ATExp: (IDAtExp: (LongVId: n)))
                                                        (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 0))))))))))))))))
                                            (PARAtExp:
                                             (ATExp:
                                              (RECORDAtExp:
                                               (ExpRow:
                                                (Lab: |1|)
                                                (ATExp: (IDAtExp: (LongVId: _id10547)))
                                                (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10548))))))))))))))))))
                                  (VALDec:
                                   (TyVarseq:)
                                   (RECValBind:
                                    (PLAINValBind:
                                     (ATPat: (IDAtPat: (LongVId: tostr)))
                                     (FNExp:
                                      (Match:
                                       (Mrule:
                                        (ATPat: (IDAtPat: (LongVId: _id10549)))
                                        (APPExp:
                                         (ATExp:
                                          (PARAtExp:
                                           (FNExp:
                                            (Match:
                                             (Mrule:
                                              (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: n)))))
                                              (ATExp:
                                               (PARAtExp:
                                                (APPExp:
                                                 (ATExp:
                                                  (PARAtExp:
                                                   (APPExp:
                                                    (ATExp: (IDAtExp: (LongVId: h)))
                                                    (PARAtExp:
                                                     (ATExp:
                                                      (PARAtExp:
                                                       (APPExp:
                                                        (ATExp: (IDAtExp: (LongVId: div)))
                                                        (RECORDAtExp:
                                                         (ExpRow:
                                                          (Lab: |1|)
                                                          (ATExp: (IDAtExp: (LongVId: n)))
                                                          (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: radix)))))))))))))
                                                 (PARAtExp:
                                                  (APPExp:
                                                   (ATExp: (IDAtExp: (LongVId: ::)))
                                                   (RECORDAtExp:
                                                    (ExpRow:
                                                     (Lab: |1|)
                                                     (ATExp:
                                                      (PARAtExp:
                                                       (APPExp:
                                                        (ATExp: (IDAtExp: (LongVId: prhex)))
                                                        (PARAtExp:
                                                         (ATExp:
                                                          (PARAtExp:
                                                           (APPExp:
                                                            (ATExp: (IDAtExp: (LongVId: mod)))
                                                            (RECORDAtExp:
                                                             (ExpRow:
                                                              (Lab: |1|)
                                                              (ATExp: (IDAtExp: (LongVId: n)))
                                                              (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: radix)))))))))))))
                                                     (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))))))))))
                                         (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10549))))))))))))))
                                 (ATExp:
                                  (PARAtExp:
                                   (APPExp:
                                    (ATExp: (IDAtExp: (LongVId: String.implode)))
                                    (PARAtExp:
                                     (ATExp:
                                      (PARAtExp:
                                       (APPExp:
                                        (ATExp: (IDAtExp: (LongVId: tostr)))
                                        (PARAtExp:
                                         (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Word8help.toInt))) (IDAtExp: (LongVId: w))))))))))))))))))))
                          (PARAtExp:
                           (ATExp:
                            (RECORDAtExp:
                             (ExpRow:
                              (Lab: |1|)
                              (ATExp: (IDAtExp: (LongVId: _id10550)))
                              (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10551)))))))))))))))))))))
             (SEQStrDec:
              (DECStrDec:
               (VALDec:
                (TyVarseq:)
                (RECValBind:
                 (PLAINValBind:
                  (ATPat: (IDAtPat: (LongVId: scan)))
                  (FNExp:
                   (Match:
                    (Mrule:
                     (ATPat: (IDAtPat: (LongVId: _id10561)))
                     (FNExp:
                      (Match:
                       (Mrule:
                        (ATPat: (IDAtPat: (LongVId: _id10562)))
                        (FNExp:
                         (Match:
                          (Mrule:
                           (ATPat: (IDAtPat: (LongVId: _id10563)))
                           (APPExp:
                            (ATExp:
                             (PARAtExp:
                              (FNExp:
                               (Match:
                                (Mrule:
                                 (ATPat:
                                  (RECORDAtPat:
                                   (FIELDPatRow:
                                    (Lab: |1|)
                                    (ATPat: (IDAtPat: (LongVId: radix)))
                                    (FIELDPatRow:
                                     (Lab: |2|)
                                     (ATPat: (IDAtPat: (LongVId: getc)))
                                     (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: source))))))))
                                 (ATExp:
                                  (LETAtExp:
                                   (SEQDec:
                                    (OPENDec: (LongStrId: StringCvt-struct))
                                    (SEQDec:
                                     (VALDec:
                                      (TyVarseq:)
                                      (PLAINValBind:
                                       (ATPat: (IDAtPat: (LongVId: source)))
                                       (ATExp:
                                        (PARAtExp:
                                         (APPExp:
                                          (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: skipWS))) (IDAtExp: (LongVId: getc)))))
                                          (IDAtExp: (LongVId: source)))))))
                                     (SEQDec:
                                      (VALDec:
                                       (TyVarseq:)
                                       (PLAINValBind:
                                        (ATPat:
                                         (RECORDAtPat:
                                          (FIELDPatRow:
                                           (Lab: |1|)
                                           (ATPat: (IDAtPat: (LongVId: isDigit)))
                                           (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: factor)))))))
                                        (APPExp:
                                         (ATExp:
                                          (PARAtExp:
                                           (FNExp:
                                            (Match:
                                             (Mrule:
                                              (ATPat: (IDAtPat: (LongVId: BIN)))
                                              (ATExp:
                                               (RECORDAtExp:
                                                (ExpRow:
                                                 (Lab: |1|)
                                                 (FNExp:
                                                  (Match:
                                                   (Mrule:
                                                    (ATPat: (IDAtPat: (LongVId: c)))
                                                    (ATExp:
                                                     (PARAtExp:
                                                      (APPExp:
                                                       (ATExp:
                                                        (PARAtExp:
                                                         (FNExp:
                                                          (Match:
                                                           (Mrule:
                                                            (ATPat: (IDAtPat: (LongVId: true)))
                                                            (ATExp:
                                                             (PARAtExp:
                                                              (APPExp:
                                                               (ATExp: (IDAtExp: (LongVId: <=)))
                                                               (RECORDAtExp:
                                                                (ExpRow:
                                                                 (Lab: |1|)
                                                                 (ATExp: (IDAtExp: (LongVId: c)))
                                                                 (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (CHARSCon: #\1))))))))))
                                                           (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
                                                       (PARAtExp:
                                                        (ATExp:
                                                         (PARAtExp:
                                                          (APPExp:
                                                           (ATExp: (IDAtExp: (LongVId: <=)))
                                                           (RECORDAtExp:
                                                            (ExpRow:
                                                             (Lab: |1|)
                                                             (ATExp: (SCONAtExp: (CHARSCon: #\0)))
                                                             (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: c))))))))))))))))
                                                 (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 2))))))))
                                             (Match:
                                              (Mrule:
                                               (ATPat: (IDAtPat: (LongVId: OCT)))
                                               (ATExp:
                                                (RECORDAtExp:
                                                 (ExpRow:
                                                  (Lab: |1|)
                                                  (FNExp:
                                                   (Match:
                                                    (Mrule:
                                                     (ATPat: (IDAtPat: (LongVId: c)))
                                                     (ATExp:
                                                      (PARAtExp:
                                                       (APPExp:
                                                        (ATExp:
                                                         (PARAtExp:
                                                          (FNExp:
                                                           (Match:
                                                            (Mrule:
                                                             (ATPat: (IDAtPat: (LongVId: true)))
                                                             (ATExp:
                                                              (PARAtExp:
                                                               (APPExp:
                                                                (ATExp: (IDAtExp: (LongVId: <=)))
                                                                (RECORDAtExp:
                                                                 (ExpRow:
                                                                  (Lab: |1|)
                                                                  (ATExp: (IDAtExp: (LongVId: c)))
                                                                  (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (CHARSCon: #\7))))))))))
                                                            (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: false)))))))))
                                                        (PARAtExp:
                                                         (ATExp:
                                                          (PARAtExp:
                                                           (APPExp:
                                                            (ATExp: (IDAtExp: (LongVId: <=)))
                                                            (RECORDAtExp:
                                                             (ExpRow:
                                                              (Lab: |1|)
                                                              (ATExp: (SCONAtExp: (CHARSCon: #\0)))
                                                              (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: c))))))))))))))))
                                                  (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 8))))))))
                                              (Match:
                                               (Mrule:
                                                (ATPat: (IDAtPat: (LongVId: DEC)))
                                                (ATExp:
                                                 (RECORDAtExp:
                                                  (ExpRow:
                                                   (Lab: |1|)
                                                   (ATExp: (IDAtExp: (LongVId: Char.isDigit)))
                                                   (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 10))))))))
                                               (Match:
                                                (Mrule:
                                                 (ATPat: (IDAtPat: (LongVId: HEX)))
                                                 (ATExp:
                                                  (RECORDAtExp:
                                                   (ExpRow:
                                                    (Lab: |1|)
                                                    (ATExp: (IDAtExp: (LongVId: Char.isHexDigit)))
                                                    (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 16)))))))))))))))
                                         (PARAtExp: (ATExp: (IDAtExp: (LongVId: radix)))))))
                                      (SEQDec:
                                       (VALDec:
                                        (TyVarseq:)
                                        (RECValBind:
                                         (PLAINValBind:
                                          (ATPat: (IDAtPat: (LongVId: return)))
                                          (FNExp:
                                           (Match:
                                            (Mrule:
                                             (ATPat: (IDAtPat: (LongVId: _id10552)))
                                             (FNExp:
                                              (Match:
                                               (Mrule:
                                                (ATPat: (IDAtPat: (LongVId: _id10553)))
                                                (APPExp:
                                                 (ATExp:
                                                  (PARAtExp:
                                                   (FNExp:
                                                    (Match:
                                                     (Mrule:
                                                      (ATPat:
                                                       (RECORDAtPat:
                                                        (FIELDPatRow:
                                                         (Lab: |1|)
                                                         (ATPat: (IDAtPat: (LongVId: res)))
                                                         (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: src)))))))
                                                      (APPExp:
                                                       (ATExp:
                                                        (PARAtExp:
                                                         (FNExp:
                                                          (Match:
                                                           (Mrule:
                                                            (ATPat: (IDAtPat: (LongVId: true)))
                                                            (ATExp:
                                                             (PARAtExp:
                                                              (APPExp:
                                                               (ATExp: (IDAtExp: (LongVId: SOME)))
                                                               (RECORDAtExp:
                                                                (ExpRow:
                                                                 (Lab: |1|)
                                                                 (ATExp:
                                                                  (PARAtExp:
                                                                   (APPExp: (ATExp: (IDAtExp: (LongVId: Word8help.fromInt))) (IDAtExp: (LongVId: res)))))
                                                                 (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: src))))))))))
                                                           (Match:
                                                            (Mrule:
                                                             (ATPat: (IDAtPat: (LongVId: false)))
                                                             (RAISEExp: (ATExp: (IDAtExp: (LongVId: Overflow))))))))))
                                                       (PARAtExp:
                                                        (ATExp:
                                                         (PARAtExp:
                                                          (APPExp:
                                                           (ATExp: (IDAtExp: (LongVId: <)))
                                                           (RECORDAtExp:
                                                            (ExpRow:
                                                             (Lab: |1|)
                                                             (ATExp: (IDAtExp: (LongVId: res)))
                                                             (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 256))))))))))))))))
                                                 (PARAtExp:
                                                  (ATExp:
                                                   (RECORDAtExp:
                                                    (ExpRow:
                                                     (Lab: |1|)
                                                     (ATExp: (IDAtExp: (LongVId: _id10552)))
                                                     (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10553))))))))))))))))))
                                       (SEQDec:
                                        (VALDec:
                                         (TyVarseq:)
                                         (RECValBind:
                                          (PLAINValBind:
                                           (ATPat: (IDAtPat: (LongVId: dig1)))
                                           (FNExp:
                                            (Match:
                                             (Mrule:
                                              (ATPat: (IDAtPat: (LongVId: _id10556)))
                                              (APPExp:
                                               (ATExp:
                                                (PARAtExp:
                                                 (FNExp:
                                                  (Match:
                                                   (Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: NONE))))) (ATExp: (IDAtExp: (LongVId: NONE))))
                                                   (Match:
                                                    (Mrule:
                                                     (ATPat:
                                                      (PARAtPat:
                                                       (ATPat:
                                                        (PARAtPat:
                                                         (ATPat:
                                                          (PARAtPat:
                                                           (CONPat:
                                                            (LongVId: SOME)
                                                            (RECORDAtPat:
                                                             (FIELDPatRow:
                                                              (Lab: |1|)
                                                              (ATPat: (IDAtPat: (LongVId: c)))
                                                              (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: rest)))))))))))))
                                                     (ATExp:
                                                      (LETAtExp:
                                                       (VALDec:
                                                        (TyVarseq:)
                                                        (RECValBind:
                                                         (PLAINValBind:
                                                          (ATPat: (IDAtPat: (LongVId: digr)))
                                                          (FNExp:
                                                           (Match:
                                                            (Mrule:
                                                             (ATPat: (IDAtPat: (LongVId: _id10554)))
                                                             (FNExp:
                                                              (Match:
                                                               (Mrule:
                                                                (ATPat: (IDAtPat: (LongVId: _id10555)))
                                                                (APPExp:
                                                                 (ATExp:
                                                                  (PARAtExp:
                                                                   (FNExp:
                                                                    (Match:
                                                                     (Mrule:
                                                                      (ATPat:
                                                                       (RECORDAtPat:
                                                                        (FIELDPatRow:
                                                                         (Lab: |1|)
                                                                         (ATPat: (IDAtPat: (LongVId: res)))
                                                                         (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: src)))))))
                                                                      (APPExp:
                                                                       (ATExp:
                                                                        (PARAtExp:
                                                                         (FNExp:
                                                                          (Match:
                                                                           (Mrule:
                                                                            (ATPat: (IDAtPat: (LongVId: NONE)))
                                                                            (ATExp:
                                                                             (PARAtExp:
                                                                              (APPExp:
                                                                               (ATExp:
                                                                                (PARAtExp:
                                                                                 (APPExp: (ATExp: (IDAtExp: (LongVId: return))) (IDAtExp: (LongVId: res)))))
                                                                               (IDAtExp: (LongVId: src))))))
                                                                           (Match:
                                                                            (Mrule:
                                                                             (ATPat:
                                                                              (PARAtPat:
                                                                               (CONPat:
                                                                                (LongVId: SOME)
                                                                                (RECORDAtPat:
                                                                                 (FIELDPatRow:
                                                                                  (Lab: |1|)
                                                                                  (ATPat: (IDAtPat: (LongVId: c)))
                                                                                  (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: rest)))))))))
                                                                             (APPExp:
                                                                              (ATExp:
                                                                               (PARAtExp:
                                                                                (FNExp:
                                                                                 (Match:
                                                                                  (Mrule:
                                                                                   (ATPat: (IDAtPat: (LongVId: true)))
                                                                                   (ATExp:
                                                                                    (PARAtExp:
                                                                                     (APPExp:
                                                                                      (ATExp:
                                                                                       (PARAtExp:
                                                                                        (APPExp:
                                                                                         (ATExp: (IDAtExp: (LongVId: digr)))
                                                                                         (PARAtExp:
                                                                                          (ATExp:
                                                                                           (PARAtExp:
                                                                                            (APPExp:
                                                                                             (ATExp: (IDAtExp: (LongVId: +)))
                                                                                             (RECORDAtExp:
                                                                                              (ExpRow:
                                                                                               (Lab: |1|)
                                                                                               (ATExp:
                                                                                                (PARAtExp:
                                                                                                 (APPExp:
                                                                                                  (ATExp: (IDAtExp: (LongVId: *)))
                                                                                                  (RECORDAtExp:
                                                                                                   (ExpRow:
                                                                                                    (Lab: |1|)
                                                                                                    (ATExp: (IDAtExp: (LongVId: factor)))
                                                                                                    (ExpRow:
                                                                                                     (Lab: |2|)
                                                                                                     (ATExp: (IDAtExp: (LongVId: res)))))))))
                                                                                               (ExpRow:
                                                                                                (Lab: |2|)
                                                                                                (ATExp:
                                                                                                 (PARAtExp:
                                                                                                  (APPExp:
                                                                                                   (ATExp: (IDAtExp: (LongVId: hexval)))
                                                                                                   (IDAtExp: (LongVId: c)))))))))))))))
                                                                                      (IDAtExp: (LongVId: rest))))))
                                                                                  (Match:
                                                                                   (Mrule:
                                                                                    (ATPat: (IDAtPat: (LongVId: false)))
                                                                                    (ATExp:
                                                                                     (PARAtExp:
                                                                                      (APPExp:
                                                                                       (ATExp:
                                                                                        (PARAtExp:
                                                                                         (APPExp:
                                                                                          (ATExp: (IDAtExp: (LongVId: return)))
                                                                                          (IDAtExp: (LongVId: res)))))
                                                                                       (IDAtExp: (LongVId: src)))))))))))
                                                                              (PARAtExp:
                                                                               (ATExp:
                                                                                (PARAtExp:
                                                                                 (APPExp:
                                                                                  (ATExp: (IDAtExp: (LongVId: isDigit)))
                                                                                  (IDAtExp: (LongVId: c)))))))))))))
                                                                       (PARAtExp:
                                                                        (ATExp:
                                                                         (PARAtExp:
                                                                          (APPExp: (ATExp: (IDAtExp: (LongVId: getc))) (IDAtExp: (LongVId: src))))))))))))
                                                                 (PARAtExp:
                                                                  (ATExp:
                                                                   (RECORDAtExp:
                                                                    (ExpRow:
                                                                     (Lab: |1|)
                                                                     (ATExp: (IDAtExp: (LongVId: _id10554)))
                                                                     (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10555))))))))))))))))))
                                                       (APPExp:
                                                        (ATExp:
                                                         (PARAtExp:
                                                          (FNExp:
                                                           (Match:
                                                            (Mrule:
                                                             (ATPat: (IDAtPat: (LongVId: true)))
                                                             (ATExp:
                                                              (PARAtExp:
                                                               (APPExp:
                                                                (ATExp:
                                                                 (PARAtExp:
                                                                  (APPExp:
                                                                   (ATExp: (IDAtExp: (LongVId: digr)))
                                                                   (PARAtExp:
                                                                    (ATExp:
                                                                     (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: hexval))) (IDAtExp: (LongVId: c)))))))))
                                                                (IDAtExp: (LongVId: rest))))))
                                                            (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: false))) (ATExp: (IDAtExp: (LongVId: NONE)))))))))
                                                        (PARAtExp:
                                                         (ATExp:
                                                          (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: isDigit))) (IDAtExp: (LongVId: c)))))))))))))))
                                               (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10556)))))))))))))
                                        (SEQDec:
                                         (VALDec:
                                          (TyVarseq:)
                                          (RECValBind:
                                           (PLAINValBind:
                                            (ATPat: (IDAtPat: (LongVId: getdigs)))
                                            (FNExp:
                                             (Match:
                                              (Mrule:
                                               (ATPat: (IDAtPat: (LongVId: _id10557)))
                                               (FNExp:
                                                (Match:
                                                 (Mrule:
                                                  (ATPat: (IDAtPat: (LongVId: _id10558)))
                                                  (APPExp:
                                                   (ATExp:
                                                    (PARAtExp:
                                                     (FNExp:
                                                      (Match:
                                                       (Mrule:
                                                        (ATPat:
                                                         (RECORDAtPat:
                                                          (FIELDPatRow:
                                                           (Lab: |1|)
                                                           (ATPat: (IDAtPat: (LongVId: after0)))
                                                           (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: src)))))))
                                                        (APPExp:
                                                         (ATExp:
                                                          (PARAtExp:
                                                           (FNExp:
                                                            (Match:
                                                             (Mrule:
                                                              (ATPat: (IDAtPat: (LongVId: NONE)))
                                                              (ATExp:
                                                               (PARAtExp:
                                                                (APPExp:
                                                                 (ATExp:
                                                                  (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: return))) (SCONAtExp: (INTSCon: 0)))))
                                                                 (IDAtExp: (LongVId: after0))))))
                                                             (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: res))) (ATExp: (IDAtExp: (LongVId: res)))))))))
                                                         (PARAtExp:
                                                          (ATExp:
                                                           (PARAtExp:
                                                            (APPExp:
                                                             (ATExp: (IDAtExp: (LongVId: dig1)))
                                                             (PARAtExp:
                                                              (ATExp:
                                                               (PARAtExp:
                                                                (APPExp: (ATExp: (IDAtExp: (LongVId: getc))) (IDAtExp: (LongVId: src))))))))))))))))
                                                   (PARAtExp:
                                                    (ATExp:
                                                     (RECORDAtExp:
                                                      (ExpRow:
                                                       (Lab: |1|)
                                                       (ATExp: (IDAtExp: (LongVId: _id10557)))
                                                       (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10558))))))))))))))))))
                                         (VALDec:
                                          (TyVarseq:)
                                          (RECValBind:
                                           (PLAINValBind:
                                            (ATPat: (IDAtPat: (LongVId: hexprefix)))
                                            (FNExp:
                                             (Match:
                                              (Mrule:
                                               (ATPat: (IDAtPat: (LongVId: _id10559)))
                                               (FNExp:
                                                (Match:
                                                 (Mrule:
                                                  (ATPat: (IDAtPat: (LongVId: _id10560)))
                                                  (APPExp:
                                                   (ATExp:
                                                    (PARAtExp:
                                                     (FNExp:
                                                      (Match:
                                                       (Mrule:
                                                        (ATPat:
                                                         (RECORDAtPat:
                                                          (FIELDPatRow:
                                                           (Lab: |1|)
                                                           (ATPat: (IDAtPat: (LongVId: after0)))
                                                           (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: src)))))))
                                                        (APPExp:
                                                         (ATExp:
                                                          (PARAtExp:
                                                           (FNExp:
                                                            (Match:
                                                             (Mrule:
                                                              (ATPat: (IDAtPat: (LongVId: true)))
                                                              (ATExp:
                                                               (PARAtExp:
                                                                (APPExp:
                                                                 (ATExp:
                                                                  (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: getdigs))) (IDAtExp: (LongVId: after0)))))
                                                                 (IDAtExp: (LongVId: src))))))
                                                             (Match:
                                                              (Mrule:
                                                               (ATPat: (IDAtPat: (LongVId: false)))
                                                               (APPExp:
                                                                (ATExp:
                                                                 (PARAtExp:
                                                                  (FNExp:
                                                                   (Match:
                                                                    (Mrule:
                                                                     (ATPat:
                                                                      (PARAtPat:
                                                                       (CONPat:
                                                                        (LongVId: SOME)
                                                                        (RECORDAtPat:
                                                                         (FIELDPatRow:
                                                                          (Lab: |1|)
                                                                          (ATPat: (SCONAtPat: (CHARSCon: #\x)))
                                                                          (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: rest)))))))))
                                                                     (ATExp:
                                                                      (PARAtExp:
                                                                       (APPExp:
                                                                        (ATExp:
                                                                         (PARAtExp:
                                                                          (APPExp: (ATExp: (IDAtExp: (LongVId: getdigs))) (IDAtExp: (LongVId: after0)))))
                                                                        (IDAtExp: (LongVId: rest))))))
                                                                    (Match:
                                                                     (Mrule:
                                                                      (ATPat:
                                                                       (PARAtPat:
                                                                        (CONPat:
                                                                         (LongVId: SOME)
                                                                         (RECORDAtPat:
                                                                          (FIELDPatRow:
                                                                           (Lab: |1|)
                                                                           (ATPat: (SCONAtPat: (CHARSCon: #\X)))
                                                                           (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: rest)))))))))
                                                                      (ATExp:
                                                                       (PARAtExp:
                                                                        (APPExp:
                                                                         (ATExp:
                                                                          (PARAtExp:
                                                                           (APPExp: (ATExp: (IDAtExp: (LongVId: getdigs))) (IDAtExp: (LongVId: after0)))))
                                                                         (IDAtExp: (LongVId: rest))))))
                                                                     (Match:
                                                                      (Mrule:
                                                                       (ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (WILDCARDAtPat:))))
                                                                       (ATExp:
                                                                        (PARAtExp:
                                                                         (APPExp:
                                                                          (ATExp:
                                                                           (PARAtExp:
                                                                            (APPExp: (ATExp: (IDAtExp: (LongVId: getdigs))) (IDAtExp: (LongVId: after0)))))
                                                                          (IDAtExp: (LongVId: src))))))
                                                                      (Match:
                                                                       (Mrule:
                                                                        (ATPat: (IDAtPat: (LongVId: NONE)))
                                                                        (ATExp:
                                                                         (PARAtExp:
                                                                          (APPExp:
                                                                           (ATExp:
                                                                            (PARAtExp:
                                                                             (APPExp: (ATExp: (IDAtExp: (LongVId: return))) (SCONAtExp: (INTSCon: 0)))))
                                                                           (IDAtExp: (LongVId: after0)))))))))))))
                                                                (PARAtExp:
                                                                 (ATExp:
                                                                  (PARAtExp:
                                                                   (APPExp: (ATExp: (IDAtExp: (LongVId: getc))) (IDAtExp: (LongVId: src)))))))))))))
                                                         (PARAtExp:
                                                          (ATExp:
                                                           (PARAtExp:
                                                            (APPExp:
                                                             (ATExp: (IDAtExp: (LongVId: <>)))
                                                             (RECORDAtExp:
                                                              (ExpRow:
                                                               (Lab: |1|)
                                                               (ATExp: (IDAtExp: (LongVId: radix)))
                                                               (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: HEX))))))))))))))))
                                                   (PARAtExp:
                                                    (ATExp:
                                                     (RECORDAtExp:
                                                      (ExpRow:
                                                       (Lab: |1|)
                                                       (ATExp: (IDAtExp: (LongVId: _id10559)))
                                                       (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: _id10560))))))))))))))))))))))))
                                   (APPExp:
                                    (ATExp:
                                     (PARAtExp:
                                      (FNExp:
                                       (Match:
                                        (Mrule:
                                         (ATPat:
                                          (PARAtPat:
                                           (CONPat:
                                            (LongVId: SOME)
                                            (RECORDAtPat:
                                             (FIELDPatRow:
                                              (Lab: |1|)
                                              (ATPat: (SCONAtPat: (CHARSCon: #\0)))
                                              (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: after0)))))))))
                                         (ATExp:
                                          (PARAtExp:
                                           (APPExp:
                                            (ATExp:
                                             (PARAtExp:
                                              (FNExp:
                                               (Match:
                                                (Mrule:
                                                 (ATPat:
                                                  (PARAtPat:
                                                   (CONPat:
                                                    (LongVId: SOME)
                                                    (RECORDAtPat:
                                                     (FIELDPatRow:
                                                      (Lab: |1|)
                                                      (ATPat: (SCONAtPat: (CHARSCon: #\w)))
                                                      (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: src2)))))))))
                                                 (ATExp:
                                                  (PARAtExp:
                                                   (APPExp:
                                                    (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: hexprefix))) (IDAtExp: (LongVId: after0)))))
                                                    (IDAtExp: (LongVId: src2))))))
                                                (Match:
                                                 (Mrule:
                                                  (ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (WILDCARDAtPat:))))
                                                  (ATExp:
                                                   (PARAtExp:
                                                    (APPExp:
                                                     (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: hexprefix))) (IDAtExp: (LongVId: after0)))))
                                                     (IDAtExp: (LongVId: after0))))))
                                                 (Match:
                                                  (Mrule:
                                                   (ATPat: (IDAtPat: (LongVId: NONE)))
                                                   (ATExp:
                                                    (PARAtExp:
                                                     (APPExp:
                                                      (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: return))) (SCONAtExp: (INTSCon: 0)))))
                                                      (IDAtExp: (LongVId: after0))))))))))))
                                            (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: getc))) (IDAtExp: (LongVId: after0))))))))))
                                        (Match:
                                         (Mrule:
                                          (ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (WILDCARDAtPat:))))
                                          (ATExp:
                                           (PARAtExp:
                                            (APPExp:
                                             (ATExp: (IDAtExp: (LongVId: dig1)))
                                             (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: getc))) (IDAtExp: (LongVId: source))))))))))
                                         (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: NONE))) (ATExp: (IDAtExp: (LongVId: NONE))))))))))
                                    (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: getc))) (IDAtExp: (LongVId: source))))))))))))))
                            (PARAtExp:
                             (ATExp:
                              (RECORDAtExp:
                               (ExpRow:
                                (Lab: |1|)
                                (ATExp: (IDAtExp: (LongVId: _id10561)))
                                (ExpRow:
                                 (Lab: |2|)
                                 (ATExp: (IDAtExp: (LongVId: _id10562)))
                                 (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: _id10563)))))))))))))))))))))))
              (DECStrDec:
               (VALDec:
                (TyVarseq:)
                (RECValBind:
                 (PLAINValBind:
                  (ATPat: (IDAtPat: (LongVId: fromString)))
                  (FNExp:
                   (Match:
                    (Mrule:
                     (ATPat: (IDAtPat: (LongVId: _id10564)))
                     (APPExp:
                      (ATExp:
                       (PARAtExp:
                        (FNExp:
                         (Match:
                          (Mrule:
                           (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s)))))
                           (ATExp:
                            (PARAtExp:
                             (APPExp:
                              (ATExp:
                               (PARAtExp:
                                (APPExp:
                                 (ATExp: (IDAtExp: (LongVId: scanString)))
                                 (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: scan))) (IDAtExp: (LongVId: HEX)))))))))
                              (IDAtExp: (LongVId: s))))))))))
                      (PARAtExp: (ATExp: (PARAtExp: (ATExp: (IDAtExp: (LongVId: _id10564))))))))))))))))
            (DECStrDec: (OPENDec: (LongStrId: Word8help-struct))))
           (SEQStrDec: (EMPTYStrDec:) (EMPTYStrDec:))))
         (IDSigExp: (SigId: WORD-sig))))))))))