Spark, the DSL building tool that backs #AshFramework and many other tools, now supports a functional builder pattern for defining DSLs! Before, you had to hand-roll a bunch of structs. See the before/after shots 😎 #ElixirLang
See the docs:
hexdocs.pm/spark/2.5.0/...
Spark — spark v2.5.0

