Our current eDSL is using API expressible as high-order functions and looks very-very as OCaml code. It’s easy to add macros on top of it using PPX syntax extension.
There are some complaints about it, for example:
- we need to use weird operator names because OCaml compiler has built-in rules about associativity of operations
- we can’t extend syntax too much, because the code should be parsable by PPXes.
AFAIU, Camlp5 is more powerful than PPXes because it uses it’s own parser and can enhance default grammar to create really fancy DSLs, which can be not parsable by OCaml parser. There are downsides, of course
- IDE support will be very weak.
- Every wannabee will be lagging in the beginning, because the syntax is completely new (as for every fancy DSL)
These points are completely ignored by opposite side, which wants to implement Camlp5-based syntax extension. Do we have any other points which can be used to… demotivate people about writing Camlp5 syntax extension?