(module LongIdFn-functor (planet chongkai/sml) (#%module-begin (Program: (FUNDECTopDec: (FunDec: (FunBind: (FunId: LongIdFn-functor) (StrId: _id35-struct) (SIGSigExp: (SEQSpec: (STRUCTURESpec: (StrDesc: (StrId: Id-struct) (IDSigExp: (SigId: ID-sig)))) (STRUCTURESpec: (StrDesc: (StrId: StrId-struct) (IDSigExp: (SigId: ID-sig)))))) (LETStrExp: (DECStrDec: (OPENDec: (LongStrId: _id35-struct))) (COLONStrExp: (STRUCTStrExp: (SEQStrDec: (STRUCTUREStrDec: (StrBind: (StrId: Id-struct) (IDStrExp: (LongStrId: Id-struct)))) (SEQStrDec: (STRUCTUREStrDec: (StrBind: (StrId: StrId-struct) (IDStrExp: (LongStrId: StrId-struct)))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Id-type) (CONTy: (Tyseq:) (LongTyCon: Id.Id-type))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: StrId-type) (CONTy: (Tyseq:) (LongTyCon: StrId.Id-type))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: longId-type) (RECORDTy: (TyRow: (Lab: |1|) (CONTy: (Tyseq: (CONTy: (Tyseq:) (LongTyCon: StrId-type))) (LongTyCon: list-type)) (TyRow: (Lab: |2|) (CONTy: (Tyseq:) (LongTyCon: Id-type)))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: toId))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: strid))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: id))))))))) (ATExp: (IDAtExp: (LongVId: id)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: fromId))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: id))))) (ATExp: (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: nil))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: id)))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: invent))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat:)))) (ATExp: (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: nil))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Id.invent))) (RECORDAtExp:))))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: toString))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: strids))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: id))))))))) (ATExp: (LETAtExp: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: prefix))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: nil))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: Id.toString))) (IDAtExp: (LongVId: id)))))) (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (ATPat: (PARAtPat: (CONPat: (LongVId: ::) (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: id))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: ids))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ^))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ^))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: StrId.toString))) (IDAtExp: (LongVId: id))))) (ExpRow: (Lab: |2|) (ATExp: (SCONAtExp: (STRINGSCon: "."))))))))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: prefix))) (IDAtExp: (LongVId: ids)))))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: prefix))) (IDAtExp: (LongVId: strids)))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: strengthen))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: strid))) (FIELDPatRow: (Lab: |2|) (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: strids))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: id))))))))))))) (ATExp: (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: ::))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: strid))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: strids))))))))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: id)))))))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: implode))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: longid))))) (ATExp: (IDAtExp: (LongVId: longid)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: explode))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (IDAtPat: (LongVId: longid))))) (ATExp: (IDAtExp: (LongVId: longid)))))))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: isUnqualified))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: strids))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: id))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: List.null))) (IDAtExp: (LongVId: strids)))))))))))) (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: compare))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: longid1))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: longid2))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: String.compare))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: toString))) (IDAtExp: (LongVId: longid1))))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: toString))) (IDAtExp: (LongVId: longid2)))))))))))))))))))))))))))))))) (WHERETYPESigExp: (WHERETYPESigExp: (IDSigExp: (SigId: LONGID-sig)) (TyVarseq:) (LongTyCon: Id.Id-type) (CONTy: (Tyseq:) (LongTyCon: Id.Id-type))) (TyVarseq:) (LongTyCon: StrId.Id-type) (CONTy: (Tyseq:) (LongTyCon: StrId.Id-type)))))))))))