Any tutorial on designing edsl in ocaml?

Search for tagless-final?

I had this post here about embedding Forth in OCaml: Can I write a ppx to replace `1` with `(add_to_stack 1)`?

Martin Fowler also wrote a book on it, but it’s from the OOP perspective: Domain Specific Languages