OCaml supports the execution of two kinds of preprocessors: one that works on the source level (as in C), and the other that works on a more structured representation of the program (as in Rust’s macro): the AST level.

PPX

  • Pre-Processor eXtension.