9.1. What is the difference between Joxa and LFE (both Lisps for the Erlang VM)¶

All functions in Joxa have to be declared before they can be used. For
recursive functions this works fine, however, for two functions that
recurse on each other there doesn’t seem to be much you can do.

Probably not, its a problem in the erts code loading scheme. Macros
take iterative compilation that is, each form needs to be available at
compile time so you have to compile each form and load it
individually. When you load the compiler, it overrides the
joxa.compiler module currently loaded and since the new thing is
incomplete it breaks.

I think there might be some possibility using of the new/old positions
in the code loader but that is a long shot. So for the compiler, and
the compiler only, macros are not usable. Thats why the bootstrap
flag is there it aborts iterative compilation and just does it all in
one fell swoop.