title: Phoenix Dialyzer Changeset Warning
body: <p>Dialyzer complains about Phoenix models when they are set up in the usual way, i.e.</p>
  
  <pre><code>def changeset(model, params \\ :empty)
  ...
  </code></pre>
  
  <p>the params instruct how the model is to be updated, with :empty as a default to differentiate between a blank form submission with 'params' equal to an empty map.</p>
  
  <p>Dialyzer warns:</p>
  
  <pre><code>The call 'Elixir.Backend.Plot':
  changeset(x0@1::any(),'empty') will never return since it differs in the 2nd argument from the success typing arguments: 
  (#{},#{})
  </code></pre>
  
  <p>if I remove the ':empty' default param the warning disappears.</p>
  
  <p>Is there a spec which satisfies the type checker while keeping the usual default changeset function? Any hints or pointers?</p>