Currently, there exist three different Elf implementations. There is MLF (for Modular LF) which enriches the LF language with module-level constructs loosely based on ML's signatures and functors. Secondly, there is an implementation embedded into ML's top-level environment in which ML functions directly accomplish tasks such as loading files, executing queries, setting tracing flags, etc. Thirdly, there is an implementation of the core language as an Elf server which is intended to be executed as an inferior process to Emacs. It can also be executed in a shell, but this is not generally recommended.
Elf should be understood as research software. This means comments, suggestions, and bug reports are extremely welcome, but, while I will do my best, I can make no guarantees regarding the response time. The same remark applies to to these notes which constitute the only ``documentation'' on the actual Elf implementations at present.