123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161(* sexp_conv: Preprocessing Module for Automated S-expression Conversions *)openPpxlibmoduleAttrs=Ppx_sexp_conv_expander.AttrsmoduleSexp_of=structmoduleE=Ppx_sexp_conv_expander.Sexp_ofletname="sexp_of"letstr_type_decl=Deriving.Generator.make_noargE.str_type_decl~attributes:[Attribute.TAttrs.default;Attribute.TAttrs.drop_default;Attribute.TAttrs.drop_if];;letstr_exception=Deriving.Generator.make_noargE.str_exception;;letsig_type_decl=Deriving.Generator.make_noargE.sig_type_decl;;letsig_exception=Deriving.Generator.make_noargE.sig_exception;;letextension~loc:_~path:_ctyp=E.core_typectypletderiver=Deriving.addname~str_type_decl~str_exception~sig_type_decl~sig_exception~extension;;let()=Driver.register_transformationname~rules:[Context_free.Rule.extension(Extension.declarenameCore_typeAst_pattern.(ptyp__)(fun~loc:_~path:_ty->E.type_extensionty))];;endmoduleOf_sexp=structmoduleE=Ppx_sexp_conv_expander.Of_sexpletname="of_sexp"letstr_type_decl=Deriving.Generator.make_noarg(E.str_type_decl~poly:false)~attributes:[Attribute.TAttrs.default];;letsig_type_decl=Deriving.Generator.make_noarg(E.sig_type_decl~poly:false);;letextension~loc:_~pathctyp=E.core_type~pathctypletderiver=Deriving.addname~str_type_decl~sig_type_decl~extension;;let()=Driver.register_transformationname~rules:[Context_free.Rule.extension(Extension.declarenameCore_typeAst_pattern.(ptyp__)(fun~loc:_~path:_ty->E.type_extensionty))];;endmoduleOf_sexp_poly=structmoduleE=Ppx_sexp_conv_expander.Of_sexpletstr_type_decl=Deriving.Generator.make_noarg(E.str_type_decl~poly:true)~attributes:[Attribute.TAttrs.default];;letsig_type_decl=Deriving.Generator.make_noarg(E.sig_type_decl~poly:true);;letderiver=Deriving.add"of_sexp_poly"~sig_type_decl~str_type_decl;;endmoduleSexp_grammar=structmoduleE=Ppx_sexp_conv_expander.Sexp_grammarletname="sexp_grammar"letstr_type_decl=Deriving.Generator.make_noargE.str_type_decl;;letsig_type_decl=Deriving.Generator.make_noargE.sig_type_decl;;letextension=E.core_typeletderiver=Deriving.addname~sig_type_decl~str_type_decl~extension;;let()=Driver.register_transformationname~rules:[Context_free.Rule.extension(Extension.declarenameCore_typeAst_pattern.(ptyp__)(fun~loc:_~path:_ty->E.type_extensionty))];;endletsexp_of=Sexp_of.deriverletof_sexp=Of_sexp.deriverletof_sexp_poly=Of_sexp_poly.deriverletsexp_grammar=Sexp_grammar.derivermoduleSexp_in_sig=structmoduleE=Ppx_sexp_conv_expander.Sig_sexpletsig_type_decl=Deriving.Generator.make_noargE.sig_type_decl;;letderiver=Deriving.add"ppx_sexp_conv: let this be a string that wouldn't parse if put in the source"~sig_type_declendletsexp=Deriving.add_alias"sexp"[sexp_of;of_sexp]~sig_type_decl:[Sexp_in_sig.deriver]~str_exception:[sexp_of]~sig_exception:[sexp_of]letsexp_poly=Deriving.add_alias"sexp_poly"[sexp_of;of_sexp_poly]