(module DerivedFormsProgram-struct (planet chongkai/sml) (#%module-begin (Program: (STRDECTopDec: (STRUCTUREStrDec: (StrBind: (StrId: DerivedFormsProgram-struct) (SEALStrExp: (STRUCTStrExp: (SEQStrDec: (STRUCTUREStrDec: (StrBind: (StrId: C-struct) (IDStrExp: (LongStrId: GrammarCore-struct)))) (SEQStrDec: (STRUCTUREStrDec: (StrBind: (StrId: M-struct) (IDStrExp: (LongStrId: GrammarModule-struct)))) (SEQStrDec: (STRUCTUREStrDec: (StrBind: (StrId: P-struct) (IDStrExp: (LongStrId: GrammarProgram-struct)))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Info-type) (CONTy: (Tyseq:) (LongTyCon: GrammarProgram.Info-type))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Exp-type) (CONTy: (Tyseq:) (LongTyCon: GrammarCore.Exp-type))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: TopDec-type) (CONTy: (Tyseq:) (LongTyCon: GrammarModule.TopDec-type))))) (SEQStrDec: (DECStrDec: (TYPEDec: (TypBind: (TyVarseq:) (TyCon: Program-type) (CONTy: (Tyseq:) (LongTyCon: GrammarProgram.Program-type))))) (SEQStrDec: (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: TOPDECProgram))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: topdec))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: program_opt)))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: P.Program))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: topdec))) (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: program_opt))))))))))))))))) (DECStrDec: (VALDec: (TyVarseq:) (RECValBind: (PLAINValBind: (ATPat: (IDAtPat: (LongVId: EXPProgram))) (FNExp: (Match: (Mrule: (ATPat: (PARAtPat: (ATPat: (RECORDAtPat: (FIELDPatRow: (Lab: |1|) (ATPat: (IDAtPat: (LongVId: I))) (FIELDPatRow: (Lab: |2|) (ATPat: (IDAtPat: (LongVId: exp))) (FIELDPatRow: (Lab: |3|) (ATPat: (IDAtPat: (LongVId: program_opt)))))))))) (ATExp: (LETAtExp: (SEQDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: longvid))) (ATExp: (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: LongVId.fromId))) (PARAtExp: (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: VId.fromString))) (SCONAtExp: (STRINGSCon: "it"))))))))))))))) (SEQDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: pat))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: C.ATPat))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: C.IDAtPat))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: C.SANSOp))) (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: longvid)))))))))))))))))) (SEQDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: valbind))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: C.PLAINValBind))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: pat))) (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: exp))) (ExpRow: (Lab: |4|) (ATExp: (IDAtExp: (LongVId: NONE))))))))))))) (SEQDec: (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: dec))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: C.VALDec))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: C.TyVarseq))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: nil))))))))) (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: valbind)))))))))))) (VALDec: (TyVarseq:) (PLAINValBind: (ATPat: (IDAtPat: (LongVId: topdec))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: M.STRDECTopDec))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: M.DECStrDec))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: dec))))))))) (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: NONE)))))))))))))))) (ATExp: (PARAtExp: (APPExp: (ATExp: (IDAtExp: (LongVId: P.Program))) (RECORDAtExp: (ExpRow: (Lab: |1|) (ATExp: (IDAtExp: (LongVId: I))) (ExpRow: (Lab: |2|) (ATExp: (IDAtExp: (LongVId: topdec))) (ExpRow: (Lab: |3|) (ATExp: (IDAtExp: (LongVId: program_opt)))))))))))))))))))))))))))) (IDSigExp: (SigId: DERIVED_FORMS_PROGRAM-sig)))))))))