For posterity:
defmodule Test do
@keys ~w(a b c)a
@type key :: unquote(Enum.reduce(@keys, &{:|, [], [&1, &2]}))
end
For posterity:
defmodule Test do
@keys ~w(a b c)a
@type key :: unquote(Enum.reduce(@keys, &{:|, [], [&1, &2]}))
end