A few major libraries like
owl conflict with BER Metaocaml by defining a
>. operator. As a consequence, the
4.07.1+BER switch cannot compile neither
owl, and of course no lib that depend on them. On top of that,
merlin does not recognize metaocaml’s brackets. I was wondering if a new version of metaocaml relying on syntax extensions would help with these issues. Basically,
.< 1 + .~x >. would be replaced by
[%metaocaml.code 1 + [%e x]]. This wouldn’t completely solve the issue with
merlin (since I guess there is a need for dedicated support in the incremental compiler), but we’d be fine with libraries redefining
Alternatively, since units compiled with
opt} are compatible with those compiled by
metaocaml shouldn’t be distributed as a particular switch, but as a package providing the
metaocaml compilers and interpreter, that could be called on specific files in a project, while using the usual compilers for the rest.
Maybe there are other approaches?