package ppxlib

  1. Overview
  2. No Docs
Standard infrastructure for ppx rewriters

Install

dune-project
 Dependency

Authors

Maintainers

Sources

ppxlib-0.39.0.tbz
sha256=441a2814dbac3f5dc0c8dcefca263548e9b4d6dda1ef2990ce6a4999e108be3c
sha512=55ace8f9c8ddb6b495ace105c1b594b983fc37946bd3d9531c1c45160341d2b06e679785e2db76d885eaf481dbf11806e7d9674281c1599f28c38f39ba6b7ae6

Description

Ppxlib is the standard infrastructure for ppx rewriters and other programs that manipulate the in-memory representation of OCaml programs, a.k.a the "Parsetree".

It also comes bundled with two ppx rewriters that are commonly used to write tools that manipulate and/or generate Parsetree values; ppxlib.metaquot which allows to construct Parsetree values using the OCaml syntax directly and ppxlib.traverse which provides various ways of automatically traversing values of a given type, in particular allowing to inject a complex structured value into generated code.

Added to opam-repository:

Dependencies (5)

  1. sexplib0 >= "v0.15"
  2. ppx_derivers >= "1.0"
  3. ocaml-compiler-libs >= "v0.11.0"
  4. ocaml >= "4.08.0" & < "5.7.0"
  5. dune >= "3.8"

Dev Dependencies (5)

  1. odoc with-doc
  2. ocamlformat with-dev-setup & = "0.28.1"
  3. cinaps with-test & >= "v0.12.1"
  4. re with-test & >= "1.9.0"
  5. ocamlfind with-test

  1. arrayjit != "0.5.2"
  2. awsm-codegen
  3. bam-ppx >= "0.4"
  4. base_quickcheck >= "v0.17.1"
  5. bisect_ppx_ng
  6. bistro
  7. bonsai >= "v0.16.0"
  8. bytestring
  9. chatoyant
  10. clangml >= "4.7.0"
  11. cmdlang-to-base < "0.0.11"
  12. codex
  13. comby < "1.3.0"
  14. commons
  15. crs < "0.0.20260307"
  16. diff
  17. diffast-misc = "0.3.5.1"
  18. dream-html >= "3.11.2"
  19. dune >= "3.17.2"
  20. dunolint
  21. dunolint-lib < "0.0.20251006"
  22. dunolint-lib-base
  23. ego
  24. eliom >= "8.9.0"
  25. elpi >= "3.3.1"
  26. embedded_ocaml_templates < "0.3.1" | >= "0.7"
  27. extunix >= "0.4.4"
  28. frama-c >= "32.0~beta"
  29. fsml
  30. fstar >= "2025.06.20"
  31. GT = "0.5.1" | >= "0.5.5"
  32. gen_js_api < "1.0.8" | >= "1.1.1"
  33. gendarme >= "0.4.1"
  34. goblint >= "2.5.0"
  35. gospel >= "0.3.1"
  36. hack_parallel
  37. hardcaml >= "v0.14.1" & != "v0.17.0"
  38. hegel >= "0.24.1"
  39. html_of_jsx >= "0.0.2"
  40. http_async
  41. js_of_ocaml >= "3.8.0"
  42. js_of_ocaml-compiler >= "6.1.0"
  43. js_of_ocaml-lwt >= "3.10.0" & < "6.1.0"
  44. js_of_ocaml-ocamlbuild >= "3.10.0" & < "5.0"
  45. js_of_ocaml-ppx >= "6.1.0"
  46. js_of_ocaml-ppx_deriving_json
  47. js_of_ocaml-toplevel >= "3.10.0"
  48. js_of_ocaml-tyxml >= "3.10.0" & < "6.1.0"
  49. jsonkit
  50. jsonkit-melange
  51. kube
  52. lablqml
  53. landmarks-ppx >= "1.6"
  54. lascar >= "0.7.0"
  55. learn-ocaml
  56. learn-ocaml-client
  57. lens >= "1.2.5"
  58. logs-ppx
  59. lwt_ppx >= "5.9.2"
  60. MlFront_Cli >= "2.1.4~prerel2" & < "2.3.1"
  61. MlFront_Config
  62. MlFront_Manip
  63. melange >= "6.0.1-51"
  64. melange-json >= "1.2.0"
  65. melange-json-native
  66. merlin >= "4.7-412"
  67. metaquot >= "0.5.0"
  68. mlt_parser != "v0.14.0"
  69. mlx
  70. mutaml >= "0.4"
  71. neural_nets_lib != "0.5.2"
  72. noCanren
  73. node_of_ocaml
  74. nuscr >= "2.0.0"
  75. OCanren-ppx >= "0.3.0"
  76. obus >= "1.2.5"
  77. ocaml-monadic >= "0.5"
  78. ocamlmerlin-mlx
  79. ocf_ppx >= "1.0.0"
  80. ocgtk < "0.1~preview2"
  81. ocsigen-i18n >= "4.0.0"
  82. ocsigen-ppx-rpc >= "1.1"
  83. ojs_base_ppx
  84. ometrics = "0.2.0"
  85. ortac-core
  86. ortac-qcheck-stm
  87. ortac-wrapper
  88. pacomb >= "1.4.3"
  89. pancake
  90. pgocaml_ppx >= "4.3.0"
  91. pla >= "2.0"
  92. polymarket >= "0.2.0"
  93. ppx-owl-opt
  94. ppx_accessor >= "v0.14.3"
  95. ppx_assert
  96. ppx_bap
  97. ppx_base
  98. ppx_bench >= "v0.17.1"
  99. ppx_bin_prot >= "v0.17.1"
  100. ppx_bin_there
  101. ppx_bitstring >= "5.0.0"
  102. ppx_blob >= "0.7.2"
  103. ppx_catch
  104. ppx_cold
  105. ppx_compare
  106. ppx_compose >= "0.2.1"
  107. ppx_const >= "2.0.1"
  108. ppx_conv_func
  109. ppx_counters
  110. ppx_css
  111. ppx_cstruct >= "6.0.0"
  112. ppx_cstubs >= "0.6.1" & < "0.7.0"
  113. ppx_csv_conv
  114. ppx_custom_printf >= "v0.14.1"
  115. ppx_decimal
  116. ppx_defer >= "0.5.0"
  117. ppx_demo
  118. ppx_derive_at_runtime != "v0.17.0"
  119. ppx_deriving >= "6.1.0"
  120. ppx_deriving_cad
  121. ppx_deriving_decoders < "0.2"
  122. ppx_deriving_encoding >= "0.4.2"
  123. ppx_deriving_ezjsonm >= "0.4.1"
  124. ppx_deriving_hardcaml
  125. ppx_deriving_hash >= "0.1.3"
  126. ppx_deriving_jsonschema
  127. ppx_deriving_jsont
  128. ppx_deriving_madcast >= "0.2"
  129. ppx_deriving_melange
  130. ppx_deriving_popper
  131. ppx_deriving_protobuf
  132. ppx_deriving_qcheck
  133. ppx_deriving_rpc >= "10.0.0"
  134. ppx_deriving_scad
  135. ppx_deriving_variant_string
  136. ppx_deriving_yaml >= "0.4.1"
  137. ppx_deriving_yamlx
  138. ppx_deriving_yojson >= "3.10.0"
  139. ppx_diff >= "v0.17.1"
  140. ppx_disable_unused_warnings
  141. ppx_dream_eml
  142. ppx_embed_file
  143. ppx_enforce
  144. ppx_enumerate
  145. ppx_expect = "v0.16.2" | >= "v0.17.3"
  146. ppx_expect_nobase
  147. ppx_ezlua
  148. ppx_factory >= "0.2.0"
  149. ppx_fail
  150. ppx_fields_conv >= "v0.14.2"
  151. ppx_fixed_literal
  152. ppx_forbid
  153. ppx_format
  154. ppx_fun
  155. ppx_gen_rec >= "2.0.0"
  156. ppx_getenv >= "2.1"
  157. ppx_globalize >= "v0.17.2"
  158. ppx_hardcaml
  159. ppx_hash
  160. ppx_hegel_compat
  161. ppx_hegel_generator
  162. ppx_hegel_test
  163. ppx_here
  164. ppx_ignore_instrumentation
  165. ppx_import < "1.8.0" | >= "1.11.0"
  166. ppx_inline_test >= "v0.17.1"
  167. ppx_inline_test_nobase >= "v0.17.0.3"
  168. ppx_interact >= "0.2.0"
  169. ppx_irmin >= "3.0.0"
  170. ppx_jane
  171. ppx_js_style >= "v0.17.1"
  172. ppx_jsobject_conv < "0.9.0" | >= "0.21.1"
  173. ppx_jsonaf_conv >= "v0.15.1" & != "v0.17.0"
  174. ppx_let >= "v0.17.1"
  175. ppx_log
  176. ppx_lun >= "0.0.2"
  177. ppx_make >= "0.3.4"
  178. ppx_map
  179. ppx_marshal >= "0.4.1"
  180. ppx_marshal_ext >= "0.4.1"
  181. ppx_matches >= "0.1.0"
  182. ppx_mica
  183. ppx_mikmatch
  184. ppx_minidebug != "2.2.0"
  185. ppx_mixins
  186. ppx_module_timer
  187. ppx_monad
  188. ppx_monoid >= "0.3.3"
  189. ppx_mysql >= "1.1.3"
  190. ppx_open
  191. ppx_optcomp >= "v0.17.1"
  192. ppx_optcomp_nobase
  193. ppx_optint
  194. ppx_optional
  195. ppx_parser >= "0.2.1"
  196. ppx_partial
  197. ppx_pattern_bind != "v0.17.0"
  198. ppx_pipebang
  199. ppx_protocol_conv >= "5.2.3"
  200. ppx_python >= "v0.15.0"
  201. ppx_quick_test >= "v0.17.1"
  202. ppx_regexp >= "0.5.2"
  203. ppx_repr >= "0.8.0"
  204. ppx_seq
  205. ppx_sexp_conv >= "v0.17.1"
  206. ppx_sexp_message >= "v0.14.1"
  207. ppx_sexp_value
  208. ppx_show
  209. ppx_stable >= "v0.17.1"
  210. ppx_stable_witness
  211. ppx_string >= "v0.14.1"
  212. ppx_string_conv
  213. ppx_string_interpolation
  214. ppx_subliner
  215. ppx_system
  216. ppx_ts
  217. ppx_tydi >= "v0.17.1"
  218. ppx_type_directed_value
  219. ppx_typed_fields != "v0.17.0"
  220. ppx_typerep_conv >= "v0.17.1"
  221. ppx_units
  222. ppx_unreachable
  223. ppx_update
  224. ppx_variants_conv >= "v0.17.1"
  225. ppx_viewpattern >= "0.1.1"
  226. ppx_windtrap
  227. ppx_xml_conv
  228. ppx_yojson_conv >= "v0.15.1" & != "v0.17.0"
  229. ppxlib-tools >= "0.39.0"
  230. ppxlib_jane >= "v0.17.3"
  231. qcow < "0.12.1"
  232. react-rules-of-hooks-ppx
  233. reason >= "3.16.0"
  234. reason-react-day-picker
  235. reason-react-ppx >= "0.17.0"
  236. refl >= "0.4.1"
  237. repr-fuzz >= "0.8.0"
  238. res_tailwindcss
  239. sedlex >= "3.4"
  240. serde_derive
  241. server-reason-react >= "0.2.0" & != "0.4.0"
  242. soteria
  243. spectrum_palette_ppx
  244. speed
  245. spin >= "0.8.0"
  246. sqlgg >= "20260721"
  247. stdint-literals
  248. stk_ppx
  249. streamable != "v0.17.0"
  250. styled-ppx
  251. togglelog
  252. toplevel_expect_test >= "v0.14.1"
  253. tyxml-jsx >= "4.5.0"
  254. tyxml-ppx >= "5.0.0"
  255. tyxml-syntax >= "4.5.0"
  256. visitors = "20210608" | >= "20251010"
  257. vlt >= "0.2.5"
  258. volgo < "0.0.21"
  259. volgo-base
  260. volgo-git-backend < "0.0.21"
  261. volgo-git-eio < "0.0.21"
  262. volgo-git-unix < "0.0.21"
  263. volgo-hg-backend < "0.0.21"
  264. volgo-hg-eio < "0.0.21"
  265. volgo-hg-unix < "0.0.21"
  266. volgo-vcs < "0.0.21"
  267. wasm_of_ocaml-compiler
  268. wtr < "3.0.0"
  269. wtr-ppx
  270. xtmpl_ppx >= "1.1.0"

Conflicts (3)

  1. ocaml-variants = "5.1.0~alpha1+options"
  2. ocaml-base-compiler = "5.1.0~alpha1"
  3. ocaml-migrate-parsetree < "2.0.0"