I have heard about LFE before. Thanks for bringing it to the table, maybe I should take a look at it again.
There are many different possibilities how to port Shen to Elixir/Erlang. Because Elixir code is represented in its own data structure similar to a lisp list, I was first thinking of using this fact to an advantage and translate the Klambda code data to a Elixir one and then either interpret it on the go or compile it to Elixir or even Erlang itself.
I have decided to write an interpreter first to get acquainted with Klambda and Elixir/Erlang platform. It is nearly ready, I have just finished implementing currying and partial application. In the course of its writing, somehow I abandoned the idea mentioned above and just interpret the particular primitive functions ad-hoc in no uniform manner.
As soon as it is done and my knowledge of Klambda and Elixir/Erlang is solid, I will probably leave it as is, without optimisation and move on to writing a compiler. As far as my current understanding goes, Elixir is more or less only a syntactic sugar for Erlang and this layer shouldn't have a big penalty in terms of performance. I think one can even compile the Elixir code to the Erlang VM byte code. Since Elixir is quite popular at the moment and the FFI for its underlying Erlang platform is very straightforward, idiomatic and intuitive, I think it would be wiser to host Shen on Elixir...
Greetings,
Matus