functoria
functoria copied to clipboard
Metafunctoria
The idea is to use metaocaml to make the configuration engine available at runtime and be able to trigger a re-emission of the initialization code on some event.
There are lots of issues with this:
- metaocaml doesn't handle modules at all.
- metaocaml doesn't handle toplevel bindings. We use bindings for two things:
main.ml: this could be avoided completely, since it's not actually exported, not a blocker- Keys: In this case, we really want the bindings to be available to the rest of the modules.
A solution, assuming that the first point is solved, would be to use "Keys as a module" instead of the current global
Bootvar_genmodule.
- In metaocaml, the meta level need in theory to be linked with the dependencies of the sublevel. A trick could be to use similar method than module aliases, where the typechecker doesn't look at a module until it's needed for typechecking.
- There are lot's of typing issues, in particular related to the connect function. Linked to #7
cc @avsm