{0 [ppxlib]'s user manual} {1 Overview} This is the user manual and API for [ppxlib], the core of the PPX meta-programming system for {{:https://ocaml.org/}OCaml} and its derivatives, such as {{:https://reasonml.github.io/}Reason}. For a good introduction on PPXs, what they are, and how to use them, see the {{:https://ocaml.org/docs/metaprogramming}OCaml official guide} on PPXs. This manual is mostly aimed at authors of PPX rewriters and contains everything one should know in order to write PPX rewriters. {1 Manual} The manual consists of several sections. It can be read linearly, but you can also jump directly to your section of interest: {ol {li {{!page-"quick_intro"}An introduction to [ppxlib]}} {li {{!page-"driver"}How [ppxlib] works internally}} {li {{!page-"writing-ppxs"}Registering a transformation}} {li {{!page-"generating-code"}Generating AST nodes}} {li {{!page-"matching-code"}Destructing AST nodes}} {li {{!page-"ast-traversal"}Traversing the AST}} {li {{!page-"good-practices"}Good practices}} {li {{!page-"examples"}Examples}} } {1 API} The API exposes the following modules: {!modules: ppxlib ppxlib_ast astlib ppxlib_metaquot Ppxlib_metaquot_lifters Ppxlib_print_diff Ppxlib_runner Ppxlib_runner_as_ppx Stdppx Ppxlib_traverse Ppxlib_traverse_builtins}