&gt;  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.<p>This isn&#x27;t really true. If you check out the ExUnit, you can pass something like &quot;use ExUnit.Case, aysnc: true&quot; and it&#x27;ll setup your module to run tests asynchronously. You can pass any atom&#x2F;value combination into use.<p>HTTPoision.Base, and ExAws to name a few other projects also have the convention of passing options into __using__.<p>To me, the confusion comes from the fact that the Elixir get-started documentation doesn&#x27;t say anything about this. It is however listed in the Kernel forms that &quot;use Module&quot; actually just translates to Module.__using__([])