Elixir has a very small core language. Most of what is thought of as the syntax is actually written using macros.
Elixir makes it ridiculously easy to get at the Abstract Syntax Tree (AST) of the code that you are using.
How to get the AST of some code:
iex(1)> quote do: 1 + 1
{:+, [context: Elixir, import: Kernel], [1, 1]}