Good error reporting in DSLs is hard: Ruby: https://zef.me/2308/when-rails-fails Scala: https://zef.me/blog/2371/when-scala-dsls-fail (2009—I imagine things are much improved)