module을 정의할 때 attribute, directive 등의 순서는 아래와 같이 정리하면 좋다.
@moduledoc
@behaviour
use
import
alias
require
@module_attribute
defstruct
@type
@callback
@macrocallback
@optional_callbacks
ref: https://github.com/christopheradams/elixir_style_guide#module-attribute-ordering
happy hackin'