hamlet/Error-struct.ss
(module Error-struct (planet chongkai/sml)
  (#%module-begin
   (Program:
    (STRDECTopDec:
     (STRUCTUREStrDec:
      (StrBind:
       (StrId: Error-struct)
       (COLONStrExp:
        (STRUCTStrExp:
         (SEQStrDec:
          (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: position-type) (CONTy: (Tyseq:) (LongTyCon: Source.info-type)))))
          (SEQStrDec:
           (DECStrDec: (EXCEPTIONDec: (NEWExBind: (VId: Error))))
           (SEQStrDec:
            (DECStrDec:
             (VALDec:
              (TyVarseq:)
              (PLAINValBind:
               (ATPat: (IDAtPat: (LongVId: dir)))
               (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: FileSys.getDir))) (RECORDAtExp:)))))))
            (SEQStrDec:
             (DECStrDec:
              (VALDec:
               (TyVarseq:)
               (RECValBind:
                (PLAINValBind:
                 (ATPat: (IDAtPat: (LongVId: print)))
                 (FNExp:
                  (Match:
                   (Mrule:
                    (ATPat:
                     (PARAtPat:
                      (ATPat:
                       (RECORDAtPat:
                        (FIELDPatRow:
                         (Lab: |1|)
                         (ATPat:
                          (RECORDAtPat:
                           (FIELDPatRow:
                            (Lab: file)
                            (ATPat: (IDAtPat: (LongVId: file)))
                            (FIELDPatRow:
                             (Lab: region)
                             (COLONPat:
                              (ATPat:
                               (RECORDAtPat:
                                (FIELDPatRow:
                                 (Lab: left)
                                 (ATPat: (IDAtPat: (LongVId: left)))
                                 (FIELDPatRow: (Lab: right) (ATPat: (IDAtPat: (LongVId: right)))))))
                              (CONTy: (Tyseq:) (LongTyCon: Source.region-type)))))))
                         (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: message)))))))))
                    (ATExp:
                     (SEQAtExp:
                      (APPExp:
                       (ATExp:
                        (PARAtExp:
                         (FNExp:
                          (Match:
                           (Mrule: (ATPat: (IDAtPat: (LongVId: NONE))) (ATExp: (RECORDAtExp:)))
                           (Match:
                            (Mrule:
                             (ATPat: (PARAtPat: (CONPat: (LongVId: SOME) (IDAtPat: (LongVId: name)))))
                             (ATExp:
                              (LETAtExp:
                               (VALDec:
                                (TyVarseq:)
                                (PLAINValBind:
                                 (ATPat: (IDAtPat: (LongVId: |name'|)))
                                 (ATExp:
                                  (PARAtExp:
                                   (APPExp:
                                    (ATExp: (IDAtExp: (LongVId: Path.mkRelative)))
                                    (RECORDAtExp:
                                     (ExpRow:
                                      (Lab: path)
                                      (ATExp: (IDAtExp: (LongVId: name)))
                                      (ExpRow: (Lab: relativeTo) (ATExp: (IDAtExp: (LongVId: dir)))))))))))
                               (ATExp:
                                (PARAtExp:
                                 (APPExp:
                                  (ATExp: (IDAtExp: (LongVId: TextIO.output)))
                                  (RECORDAtExp:
                                   (ExpRow:
                                    (Lab: |1|)
                                    (ATExp: (IDAtExp: (LongVId: TextIO.stdErr)))
                                    (ExpRow:
                                     (Lab: |2|)
                                     (ATExp:
                                      (PARAtExp:
                                       (APPExp:
                                        (ATExp: (IDAtExp: (LongVId: ^)))
                                        (RECORDAtExp:
                                         (ExpRow:
                                          (Lab: |1|)
                                          (ATExp: (IDAtExp: (LongVId: |name'|)))
                                          (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: ":")))))))))))))))))))))))
                       (PARAtExp: (ATExp: (IDAtExp: (LongVId: file)))))
                      (SEQAtExp:
                       (ATExp:
                        (PARAtExp:
                         (APPExp:
                          (ATExp: (IDAtExp: (LongVId: TextIO.output)))
                          (RECORDAtExp:
                           (ExpRow:
                            (Lab: |1|)
                            (ATExp: (IDAtExp: (LongVId: TextIO.stdErr)))
                            (ExpRow:
                             (Lab: |2|)
                             (ATExp:
                              (PARAtExp:
                               (APPExp:
                                (ATExp: (IDAtExp: (LongVId: ^)))
                                (RECORDAtExp:
                                 (ExpRow:
                                  (Lab: |1|)
                                  (ATExp:
                                   (PARAtExp:
                                    (APPExp:
                                     (ATExp: (IDAtExp: (LongVId: Int.toString)))
                                     (PARAtExp:
                                      (ATExp:
                                       (PARAtExp:
                                        (APPExp:
                                         (ATExp:
                                          (PARAtExp:
                                           (FNExp:
                                            (Match:
                                             (Mrule:
                                              (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: lin) (ATPat: (IDAtPat: (LongVId: _id12))) (DOTSPatRow:))))
                                              (ATExp: (IDAtExp: (LongVId: _id12))))))))
                                         (IDAtExp: (LongVId: left)))))))))
                                  (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: ".")))))))))))))))
                       (SEQAtExp:
                        (ATExp:
                         (PARAtExp:
                          (APPExp:
                           (ATExp: (IDAtExp: (LongVId: TextIO.output)))
                           (RECORDAtExp:
                            (ExpRow:
                             (Lab: |1|)
                             (ATExp: (IDAtExp: (LongVId: TextIO.stdErr)))
                             (ExpRow:
                              (Lab: |2|)
                              (ATExp:
                               (PARAtExp:
                                (APPExp:
                                 (ATExp: (IDAtExp: (LongVId: ^)))
                                 (RECORDAtExp:
                                  (ExpRow:
                                   (Lab: |1|)
                                   (ATExp:
                                    (PARAtExp:
                                     (APPExp:
                                      (ATExp: (IDAtExp: (LongVId: Int.toString)))
                                      (PARAtExp:
                                       (ATExp:
                                        (PARAtExp:
                                         (APPExp:
                                          (ATExp:
                                           (PARAtExp:
                                            (FNExp:
                                             (Match:
                                              (Mrule:
                                               (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: col) (ATPat: (IDAtPat: (LongVId: _id13))) (DOTSPatRow:))))
                                               (ATExp: (IDAtExp: (LongVId: _id13))))))))
                                          (IDAtExp: (LongVId: left)))))))))
                                   (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "-")))))))))))))))
                        (SEQAtExp:
                         (ATExp:
                          (PARAtExp:
                           (APPExp:
                            (ATExp: (IDAtExp: (LongVId: TextIO.output)))
                            (RECORDAtExp:
                             (ExpRow:
                              (Lab: |1|)
                              (ATExp: (IDAtExp: (LongVId: TextIO.stdErr)))
                              (ExpRow:
                               (Lab: |2|)
                               (ATExp:
                                (PARAtExp:
                                 (APPExp:
                                  (ATExp: (IDAtExp: (LongVId: ^)))
                                  (RECORDAtExp:
                                   (ExpRow:
                                    (Lab: |1|)
                                    (ATExp:
                                     (PARAtExp:
                                      (APPExp:
                                       (ATExp: (IDAtExp: (LongVId: Int.toString)))
                                       (PARAtExp:
                                        (ATExp:
                                         (PARAtExp:
                                          (APPExp:
                                           (ATExp:
                                            (PARAtExp:
                                             (FNExp:
                                              (Match:
                                               (Mrule:
                                                (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: lin) (ATPat: (IDAtPat: (LongVId: _id14))) (DOTSPatRow:))))
                                                (ATExp: (IDAtExp: (LongVId: _id14))))))))
                                           (IDAtExp: (LongVId: right)))))))))
                                    (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: ".")))))))))))))))
                         (SEQAtExp:
                          (ATExp:
                           (PARAtExp:
                            (APPExp:
                             (ATExp: (IDAtExp: (LongVId: TextIO.output)))
                             (RECORDAtExp:
                              (ExpRow:
                               (Lab: |1|)
                               (ATExp: (IDAtExp: (LongVId: TextIO.stdErr)))
                               (ExpRow:
                                (Lab: |2|)
                                (ATExp:
                                 (PARAtExp:
                                  (APPExp:
                                   (ATExp: (IDAtExp: (LongVId: ^)))
                                   (RECORDAtExp:
                                    (ExpRow:
                                     (Lab: |1|)
                                     (ATExp:
                                      (PARAtExp:
                                       (APPExp:
                                        (ATExp: (IDAtExp: (LongVId: Int.toString)))
                                        (PARAtExp:
                                         (ATExp:
                                          (PARAtExp:
                                           (APPExp:
                                            (ATExp:
                                             (PARAtExp:
                                              (FNExp:
                                               (Match:
                                                (Mrule:
                                                 (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: col) (ATPat: (IDAtPat: (LongVId: _id15))) (DOTSPatRow:))))
                                                 (ATExp: (IDAtExp: (LongVId: _id15))))))))
                                            (IDAtExp: (LongVId: right)))))))))
                                     (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: ": ")))))))))))))))
                          (SEQAtExp:
                           (ATExp:
                            (PARAtExp:
                             (APPExp:
                              (ATExp: (IDAtExp: (LongVId: TextIO.output)))
                              (RECORDAtExp:
                               (ExpRow:
                                (Lab: |1|)
                                (ATExp: (IDAtExp: (LongVId: TextIO.stdErr)))
                                (ExpRow:
                                 (Lab: |2|)
                                 (ATExp:
                                  (PARAtExp:
                                   (APPExp:
                                    (ATExp: (IDAtExp: (LongVId: ^)))
                                    (RECORDAtExp:
                                     (ExpRow:
                                      (Lab: |1|)
                                      (ATExp: (IDAtExp: (LongVId: message)))
                                      (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "\n")))))))))))))))
                           (PARAtExp:
                            (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: TextIO.flushOut))) (IDAtExp: (LongVId: TextIO.stdErr))))))))))))))))))))
             (SEQStrDec:
              (DECStrDec:
               (VALDec:
                (TyVarseq:)
                (RECValBind:
                 (PLAINValBind:
                  (ATPat: (IDAtPat: (LongVId: warning)))
                  (FNExp:
                   (Match:
                    (Mrule:
                     (ATPat:
                      (PARAtPat:
                       (ATPat:
                        (RECORDAtPat:
                         (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: pos))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: message)))))))))
                     (ATExp:
                      (PARAtExp:
                       (APPExp:
                        (ATExp: (IDAtExp: (LongVId: print)))
                        (RECORDAtExp:
                         (ExpRow:
                          (Lab: |1|)
                          (ATExp: (IDAtExp: (LongVId: pos)))
                          (ExpRow:
                           (Lab: |2|)
                           (ATExp:
                            (PARAtExp:
                             (APPExp:
                              (ATExp: (IDAtExp: (LongVId: ^)))
                              (RECORDAtExp:
                               (ExpRow:
                                (Lab: |1|)
                                (ATExp: (SCONAtExp: (STRINGSCon: "warning: ")))
                                (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: message))))))))))))))))))))))
              (SEQStrDec:
               (DECStrDec:
                (VALDec:
                 (TyVarseq:)
                 (RECValBind:
                  (PLAINValBind:
                   (ATPat: (IDAtPat: (LongVId: error)))
                   (FNExp:
                    (Match:
                     (Mrule:
                      (ATPat:
                       (PARAtPat:
                        (ATPat:
                         (RECORDAtPat:
                          (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: pos))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: message)))))))))
                      (ATExp:
                       (SEQAtExp:
                        (ATExp:
                         (PARAtExp:
                          (APPExp:
                           (ATExp: (IDAtExp: (LongVId: print)))
                           (RECORDAtExp:
                            (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: pos))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: message)))))))))
                        (PARAtExp: (RAISEExp: (ATExp: (IDAtExp: (LongVId: Error))))))))))))))
               (SEQStrDec:
                (DECStrDec:
                 (VALDec:
                  (TyVarseq:)
                  (RECValBind:
                   (PLAINValBind:
                    (ATPat: (IDAtPat: (LongVId: errorLab)))
                    (FNExp:
                     (Match:
                      (Mrule:
                       (ATPat:
                        (PARAtPat:
                         (ATPat:
                          (RECORDAtPat:
                           (FIELDPatRow:
                            (Lab: |1|)
                            (ATPat: (IDAtPat: (LongVId: pos)))
                            (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: s))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: lab))))))))))
                       (ATExp:
                        (PARAtExp:
                         (APPExp:
                          (ATExp: (IDAtExp: (LongVId: error)))
                          (RECORDAtExp:
                           (ExpRow:
                            (Lab: |1|)
                            (ATExp: (IDAtExp: (LongVId: pos)))
                            (ExpRow:
                             (Lab: |2|)
                             (ATExp:
                              (PARAtExp:
                               (APPExp:
                                (ATExp: (IDAtExp: (LongVId: ^)))
                                (RECORDAtExp:
                                 (ExpRow:
                                  (Lab: |1|)
                                  (ATExp: (IDAtExp: (LongVId: s)))
                                  (ExpRow:
                                   (Lab: |2|)
                                   (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Lab.toString))) (IDAtExp: (LongVId: lab))))))))))))))))))))))))
                (SEQStrDec:
                 (DECStrDec:
                  (VALDec:
                   (TyVarseq:)
                   (RECValBind:
                    (PLAINValBind:
                     (ATPat: (IDAtPat: (LongVId: errorVId)))
                     (FNExp:
                      (Match:
                       (Mrule:
                        (ATPat:
                         (PARAtPat:
                          (ATPat:
                           (RECORDAtPat:
                            (FIELDPatRow:
                             (Lab: |1|)
                             (ATPat: (IDAtPat: (LongVId: pos)))
                             (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: s))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: vid))))))))))
                        (ATExp:
                         (PARAtExp:
                          (APPExp:
                           (ATExp: (IDAtExp: (LongVId: error)))
                           (RECORDAtExp:
                            (ExpRow:
                             (Lab: |1|)
                             (ATExp: (IDAtExp: (LongVId: pos)))
                             (ExpRow:
                              (Lab: |2|)
                              (ATExp:
                               (PARAtExp:
                                (APPExp:
                                 (ATExp: (IDAtExp: (LongVId: ^)))
                                 (RECORDAtExp:
                                  (ExpRow:
                                   (Lab: |1|)
                                   (ATExp: (IDAtExp: (LongVId: s)))
                                   (ExpRow:
                                    (Lab: |2|)
                                    (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: VId.toString))) (IDAtExp: (LongVId: vid))))))))))))))))))))))))
                 (SEQStrDec:
                  (DECStrDec:
                   (VALDec:
                    (TyVarseq:)
                    (RECValBind:
                     (PLAINValBind:
                      (ATPat: (IDAtPat: (LongVId: errorTyCon)))
                      (FNExp:
                       (Match:
                        (Mrule:
                         (ATPat:
                          (PARAtPat:
                           (ATPat:
                            (RECORDAtPat:
                             (FIELDPatRow:
                              (Lab: |1|)
                              (ATPat: (IDAtPat: (LongVId: pos)))
                              (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: s))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: tycon))))))))))
                         (ATExp:
                          (PARAtExp:
                           (APPExp:
                            (ATExp: (IDAtExp: (LongVId: error)))
                            (RECORDAtExp:
                             (ExpRow:
                              (Lab: |1|)
                              (ATExp: (IDAtExp: (LongVId: pos)))
                              (ExpRow:
                               (Lab: |2|)
                               (ATExp:
                                (PARAtExp:
                                 (APPExp:
                                  (ATExp: (IDAtExp: (LongVId: ^)))
                                  (RECORDAtExp:
                                   (ExpRow:
                                    (Lab: |1|)
                                    (ATExp: (IDAtExp: (LongVId: s)))
                                    (ExpRow:
                                     (Lab: |2|)
                                     (ATExp:
                                      (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: TyCon.toString))) (IDAtExp: (LongVId: tycon))))))))))))))))))))))))
                  (SEQStrDec:
                   (DECStrDec:
                    (VALDec:
                     (TyVarseq:)
                     (RECValBind:
                      (PLAINValBind:
                       (ATPat: (IDAtPat: (LongVId: errorTyVar)))
                       (FNExp:
                        (Match:
                         (Mrule:
                          (ATPat:
                           (PARAtPat:
                            (ATPat:
                             (RECORDAtPat:
                              (FIELDPatRow:
                               (Lab: |1|)
                               (ATPat: (IDAtPat: (LongVId: pos)))
                               (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: s))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: tyvar))))))))))
                          (ATExp:
                           (PARAtExp:
                            (APPExp:
                             (ATExp: (IDAtExp: (LongVId: error)))
                             (RECORDAtExp:
                              (ExpRow:
                               (Lab: |1|)
                               (ATExp: (IDAtExp: (LongVId: pos)))
                               (ExpRow:
                                (Lab: |2|)
                                (ATExp:
                                 (PARAtExp:
                                  (APPExp:
                                   (ATExp: (IDAtExp: (LongVId: ^)))
                                   (RECORDAtExp:
                                    (ExpRow:
                                     (Lab: |1|)
                                     (ATExp: (IDAtExp: (LongVId: s)))
                                     (ExpRow:
                                      (Lab: |2|)
                                      (ATExp:
                                       (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: TyVar.toString))) (IDAtExp: (LongVId: tyvar))))))))))))))))))))))))
                   (SEQStrDec:
                    (DECStrDec:
                     (VALDec:
                      (TyVarseq:)
                      (RECValBind:
                       (PLAINValBind:
                        (ATPat: (IDAtPat: (LongVId: errorStrId)))
                        (FNExp:
                         (Match:
                          (Mrule:
                           (ATPat:
                            (PARAtPat:
                             (ATPat:
                              (RECORDAtPat:
                               (FIELDPatRow:
                                (Lab: |1|)
                                (ATPat: (IDAtPat: (LongVId: pos)))
                                (FIELDPatRow:
                                 (Lab: |2|)
                                 (ATPat: (IDAtPat: (LongVId: s)))
                                 (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: strid))))))))))
                           (ATExp:
                            (PARAtExp:
                             (APPExp:
                              (ATExp: (IDAtExp: (LongVId: error)))
                              (RECORDAtExp:
                               (ExpRow:
                                (Lab: |1|)
                                (ATExp: (IDAtExp: (LongVId: pos)))
                                (ExpRow:
                                 (Lab: |2|)
                                 (ATExp:
                                  (PARAtExp:
                                   (APPExp:
                                    (ATExp: (IDAtExp: (LongVId: ^)))
                                    (RECORDAtExp:
                                     (ExpRow:
                                      (Lab: |1|)
                                      (ATExp: (IDAtExp: (LongVId: s)))
                                      (ExpRow:
                                       (Lab: |2|)
                                       (ATExp:
                                        (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: StrId.toString))) (IDAtExp: (LongVId: strid))))))))))))))))))))))))
                    (SEQStrDec:
                     (DECStrDec:
                      (VALDec:
                       (TyVarseq:)
                       (RECValBind:
                        (PLAINValBind:
                         (ATPat: (IDAtPat: (LongVId: errorSigId)))
                         (FNExp:
                          (Match:
                           (Mrule:
                            (ATPat:
                             (PARAtPat:
                              (ATPat:
                               (RECORDAtPat:
                                (FIELDPatRow:
                                 (Lab: |1|)
                                 (ATPat: (IDAtPat: (LongVId: pos)))
                                 (FIELDPatRow:
                                  (Lab: |2|)
                                  (ATPat: (IDAtPat: (LongVId: s)))
                                  (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: sigid))))))))))
                            (ATExp:
                             (PARAtExp:
                              (APPExp:
                               (ATExp: (IDAtExp: (LongVId: error)))
                               (RECORDAtExp:
                                (ExpRow:
                                 (Lab: |1|)
                                 (ATExp: (IDAtExp: (LongVId: pos)))
                                 (ExpRow:
                                  (Lab: |2|)
                                  (ATExp:
                                   (PARAtExp:
                                    (APPExp:
                                     (ATExp: (IDAtExp: (LongVId: ^)))
                                     (RECORDAtExp:
                                      (ExpRow:
                                       (Lab: |1|)
                                       (ATExp: (IDAtExp: (LongVId: s)))
                                       (ExpRow:
                                        (Lab: |2|)
                                        (ATExp:
                                         (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SigId.toString))) (IDAtExp: (LongVId: sigid))))))))))))))))))))))))
                     (SEQStrDec:
                      (DECStrDec:
                       (VALDec:
                        (TyVarseq:)
                        (RECValBind:
                         (PLAINValBind:
                          (ATPat: (IDAtPat: (LongVId: errorFunId)))
                          (FNExp:
                           (Match:
                            (Mrule:
                             (ATPat:
                              (PARAtPat:
                               (ATPat:
                                (RECORDAtPat:
                                 (FIELDPatRow:
                                  (Lab: |1|)
                                  (ATPat: (IDAtPat: (LongVId: pos)))
                                  (FIELDPatRow:
                                   (Lab: |2|)
                                   (ATPat: (IDAtPat: (LongVId: s)))
                                   (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: funid))))))))))
                             (ATExp:
                              (PARAtExp:
                               (APPExp:
                                (ATExp: (IDAtExp: (LongVId: error)))
                                (RECORDAtExp:
                                 (ExpRow:
                                  (Lab: |1|)
                                  (ATExp: (IDAtExp: (LongVId: pos)))
                                  (ExpRow:
                                   (Lab: |2|)
                                   (ATExp:
                                    (PARAtExp:
                                     (APPExp:
                                      (ATExp: (IDAtExp: (LongVId: ^)))
                                      (RECORDAtExp:
                                       (ExpRow:
                                        (Lab: |1|)
                                        (ATExp: (IDAtExp: (LongVId: s)))
                                        (ExpRow:
                                         (Lab: |2|)
                                         (ATExp:
                                          (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: FunId.toString))) (IDAtExp: (LongVId: funid))))))))))))))))))))))))
                      (SEQStrDec:
                       (DECStrDec:
                        (VALDec:
                         (TyVarseq:)
                         (RECValBind:
                          (PLAINValBind:
                           (ATPat: (IDAtPat: (LongVId: errorLongVId)))
                           (FNExp:
                            (Match:
                             (Mrule:
                              (ATPat:
                               (PARAtPat:
                                (ATPat:
                                 (RECORDAtPat:
                                  (FIELDPatRow:
                                   (Lab: |1|)
                                   (ATPat: (IDAtPat: (LongVId: pos)))
                                   (FIELDPatRow:
                                    (Lab: |2|)
                                    (ATPat: (IDAtPat: (LongVId: s)))
                                    (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longvid))))))))))
                              (ATExp:
                               (PARAtExp:
                                (APPExp:
                                 (ATExp: (IDAtExp: (LongVId: error)))
                                 (RECORDAtExp:
                                  (ExpRow:
                                   (Lab: |1|)
                                   (ATExp: (IDAtExp: (LongVId: pos)))
                                   (ExpRow:
                                    (Lab: |2|)
                                    (ATExp:
                                     (PARAtExp:
                                      (APPExp:
                                       (ATExp: (IDAtExp: (LongVId: ^)))
                                       (RECORDAtExp:
                                        (ExpRow:
                                         (Lab: |1|)
                                         (ATExp: (IDAtExp: (LongVId: s)))
                                         (ExpRow:
                                          (Lab: |2|)
                                          (ATExp:
                                           (PARAtExp:
                                            (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.toString))) (IDAtExp: (LongVId: longvid))))))))))))))))))))))))
                       (SEQStrDec:
                        (DECStrDec:
                         (VALDec:
                          (TyVarseq:)
                          (RECValBind:
                           (PLAINValBind:
                            (ATPat: (IDAtPat: (LongVId: errorLongTyCon)))
                            (FNExp:
                             (Match:
                              (Mrule:
                               (ATPat:
                                (PARAtPat:
                                 (ATPat:
                                  (RECORDAtPat:
                                   (FIELDPatRow:
                                    (Lab: |1|)
                                    (ATPat: (IDAtPat: (LongVId: pos)))
                                    (FIELDPatRow:
                                     (Lab: |2|)
                                     (ATPat: (IDAtPat: (LongVId: s)))
                                     (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longtycon))))))))))
                               (ATExp:
                                (PARAtExp:
                                 (APPExp:
                                  (ATExp: (IDAtExp: (LongVId: error)))
                                  (RECORDAtExp:
                                   (ExpRow:
                                    (Lab: |1|)
                                    (ATExp: (IDAtExp: (LongVId: pos)))
                                    (ExpRow:
                                     (Lab: |2|)
                                     (ATExp:
                                      (PARAtExp:
                                       (APPExp:
                                        (ATExp: (IDAtExp: (LongVId: ^)))
                                        (RECORDAtExp:
                                         (ExpRow:
                                          (Lab: |1|)
                                          (ATExp: (IDAtExp: (LongVId: s)))
                                          (ExpRow:
                                           (Lab: |2|)
                                           (ATExp:
                                            (PARAtExp:
                                             (APPExp: (ATExp: (IDAtExp: (LongVId: LongTyCon.toString))) (IDAtExp: (LongVId: longtycon))))))))))))))))))))))))
                        (DECStrDec:
                         (VALDec:
                          (TyVarseq:)
                          (RECValBind:
                           (PLAINValBind:
                            (ATPat: (IDAtPat: (LongVId: errorLongStrId)))
                            (FNExp:
                             (Match:
                              (Mrule:
                               (ATPat:
                                (PARAtPat:
                                 (ATPat:
                                  (RECORDAtPat:
                                   (FIELDPatRow:
                                    (Lab: |1|)
                                    (ATPat: (IDAtPat: (LongVId: pos)))
                                    (FIELDPatRow:
                                     (Lab: |2|)
                                     (ATPat: (IDAtPat: (LongVId: s)))
                                     (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: longstrid))))))))))
                               (ATExp:
                                (PARAtExp:
                                 (APPExp:
                                  (ATExp: (IDAtExp: (LongVId: error)))
                                  (RECORDAtExp:
                                   (ExpRow:
                                    (Lab: |1|)
                                    (ATExp: (IDAtExp: (LongVId: pos)))
                                    (ExpRow:
                                     (Lab: |2|)
                                     (ATExp:
                                      (PARAtExp:
                                       (APPExp:
                                        (ATExp: (IDAtExp: (LongVId: ^)))
                                        (RECORDAtExp:
                                         (ExpRow:
                                          (Lab: |1|)
                                          (ATExp: (IDAtExp: (LongVId: s)))
                                          (ExpRow:
                                           (Lab: |2|)
                                           (ATExp:
                                            (PARAtExp:
                                             (APPExp:
                                              (ATExp: (IDAtExp: (LongVId: LongStrId.toString)))
                                              (IDAtExp: (LongVId: longstrid))))))))))))))))))))))))))))))))))))))))
        (IDSigExp: (SigId: ERROR-sig)))))))))