(module TyVar-struct (planet chongkai/sml) (#%module-begin (Program: (STRDECTopDec: (STRUCTUREStrDec: (StrBind: (StrId: TyVar-struct) (SEALStrExp: (STRUCTStrExp: (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: OverloadingClass-type) (CONTy: (Tyseq:) (LongTyCon: OverloadingClass.OverloadingClass-type))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: TyVar-type) (RECORDTy: (TyRow: (Lab: name) (CONTy: (Tyseq:) (LongTyCon: string-type)) (TyRow: (Lab: equality) (CONTy: (Tyseq:) (LongTyCon: bool-type)) (TyRow: (Lab: overloading) (CONTy: (Tyseq: (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: OverloadingClass-type))) (LongTyCon: ref-type))) (LongTyCon: option-type))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: invent))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: equality))))) (ATExp: (RECORDAtExp: (ExpRow: (Lab: name) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ^))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ^))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (SCONAtExp: (STRINGSCon: "_"))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (IFExp: (ATExp: (IDAtExp: (LongVId: equality))) (ATExp: (SCONAtExp: (STRINGSCon: "''"))) (ATExp: (SCONAtExp: (STRINGSCon: "'")))))))))))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Stamp.toString))) (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Stamp.stamp))) (RECORDAtExp:)))))))))))))) (ExpRow: (Lab: equality) (ATExp: (IDAtExp: (LongVId: equality))) (ExpRow: (Lab: overloading) (ATExp: (IDAtExp: (LongVId: NONE))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: fromInt))) (FNExp: (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: equality))) (FNExp: (Match: (Mrule: (ATPat: (IDAtPat: (LongVId: n))) (ATExp: (LETAtExp: (SEQDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: c))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.str))) (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Char.chr))) (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: +))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Char.ord))) (SCONAtExp: (CHARSCon: #\a))))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: mod))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: n))) (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 26))))))))))))))))))))))))) (SEQDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: i))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: div))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: n))) (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 26))))))))))) (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: name))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ^))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (IFExp: (ATExp: (IDAtExp: (LongVId: equality))) (ATExp: (SCONAtExp: (STRINGSCon: "''"))) (ATExp: (SCONAtExp: (STRINGSCon: "'")))))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (IFExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: =))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: i))) (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 0))))))))) (ATExp: (IDAtExp: (LongVId: c))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ^))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: c))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Int.toString))) (IDAtExp: (LongVId: i)))))))))))))))))))))))) (ATExp: (RECORDAtExp: (ExpRow: (Lab: name) (ATExp: (IDAtExp: (LongVId: name))) (ExpRow: (Lab: equality) (ATExp: (IDAtExp: (LongVId: equality))) (ExpRow: (Lab: overloading) (ATExp: (IDAtExp: (LongVId: NONE)))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: fromString))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: s))))) (ATExp: (RECORDAtExp: (ExpRow: (Lab: name) (ATExp: (IDAtExp: (LongVId: s))) (ExpRow: (Lab: equality) (IFExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: >))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.size))) (PARAtExp: (ATExp: (IDAtExp: (LongVId: s))))))) (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: =))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.sub))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: s))) (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (INTSCon: 1))))))))) (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (CHARSCon: #\'))))))))) (ATExp: (IDAtExp: (LongVId: false)))) (ExpRow: (Lab: overloading) (ATExp: (IDAtExp: (LongVId: NONE))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: fromOverloadingClass))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: s))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: O))))))))) (ATExp: (RECORDAtExp: (ExpRow: (Lab: name) (ATExp: (IDAtExp: (LongVId: s))) (ExpRow: (Lab: equality) (ATExp: (IDAtExp: (LongVId: false))) (ExpRow: (Lab: overloading) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: SOME))) (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ref))) (IDAtExp: (LongVId: O))))))))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: toString))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: name) (ATPat: (IDAtPat: (LongVId: name))) (FIELDPatRow: (Lab: equality) (ATPat: (IDAtPat: (LongVId: equality))) (FIELDPatRow: (Lab: overloading) (ATPat: (IDAtPat: (LongVId: overloading)))))))))) (ATExp: (IDAtExp: (LongVId: name)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: admitsEquality))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: name) (ATPat: (IDAtPat: (LongVId: name))) (FIELDPatRow: (Lab: equality) (ATPat: (IDAtPat: (LongVId: equality))) (FIELDPatRow: (Lab: overloading) (ATPat: (IDAtPat: (LongVId: overloading)))))))))) (ATExp: (IDAtExp: (LongVId: equality)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: overloadingClass))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: name) (ATPat: (IDAtPat: (LongVId: name))) (FIELDPatRow: (Lab: equality) (ATPat: (IDAtPat: (LongVId: equality))) (FIELDPatRow: (Lab: overloading) (ATPat: (IDAtPat: (LongVId: overloading)))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Option.map))) (IDAtExp: (LongVId: !))))) (IDAtExp: (LongVId: overloading)))))))))))) (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: compare))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (COLONPat: (ATPat: (IDAtPat: (LongVId: alpha1))) (CONTy: (Tyseq:) (LongTyCon: TyVar-type))) (FIELDPatRow: (Lab: |2|) (COLONPat: (ATPat: (IDAtPat: (LongVId: alpha2))) (CONTy: (Tyseq:) (LongTyCon: TyVar-type))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.compare))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (FNExp: (Match: (Mrule: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: name) (ATPat: (IDAtPat: (LongVId: _id109))) (DOTSPatRow:)))) (ATExp: (IDAtExp: (LongVId: _id109)))))))) (IDAtExp: (LongVId: alpha1))))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (PARAtExp: (FNExp: (Match: (Mrule: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: name) (ATPat: (IDAtPat: (LongVId: _id110))) (DOTSPatRow:)))) (ATExp: (IDAtExp: (LongVId: _id110)))))))) (IDAtExp: (LongVId: alpha2)))))))))))))))))))))))))))) (IDSigExp: (SigId: TYVAR-sig)))))))))