Blog Post: 10 Elixir gotchas

The chapter How to use constants is a little bit misleading as module a attributes have not been built to be constant in their design, even though we use them for that.

I agree that a new option for Module.register_attribute/3 to enforce it to be constant would be nice, even though I never saw the immediate need for that as if you respect the fact that you define attributes on top before code, this problem goes away.