I&#x27;m just starting to learn Elixir and Phoenix. Here are two little bits of &quot;magic&quot; that have thrown me for a loop so far:<p>1. @var&#x27;s in templates are not module attributes (though they do seem to be convenient!)<p>2. The form for `use` is different in Phoenix than it is in Elixir proper – instead of passing opts, you pass an atom that selects the implementation of __using__ you want. (This bit of magic makes no particular sense to me – why wouldn&#x27;t you just use a submodule, say MyApp.Controller, that has the correct and single __using__ attached?)