So if @jmitchell would like to be able to call Foo.bar
nicely from both Elixir and foo.bar
from Erlang, would this be an acceptable approach to expose the api for both ?
defmodule Foo.Impl do
defmacro __using__(_) do
quote do
def bar(), do: # ...
# more of Foo public API
end
end
end
defmodule :foo do
@moduledoc "For use from erlang"
use Foo.Impl
end
defmodule Foo do
@moduledoc "Alchemist way"
use Foo.Impl
end