“…More recently, the ppx framework, which supports transformations on abstract syntax [17], has become popular. Syntax transformers based on ppx, such as ppx_deriving (a reimplementation of the deriving generic programming framework [18]), js_of_ocaml-ppx (an extension for manipulating JavaScript properties, distributed as part of the js_of_ocaml OCaml-to-JavaScript compiler [16]), ppx_lwt (a syntax for constructing promise computations, part of the lwt lightweight concurrency framework [15]) and ppx_stage (a preprocessor for typed multi-stage programming), may also generate large amounts of code.…”