title: Default init in Swift enum being ignored
body: <p>I'm trying to reimplement <code>Optional</code> in Swift. I'm calling it <code>Maybe</code>. I have 2 inits, to create the empty or nil version and the one holding a generic type:</p>
  
  <pre><code>enum Maybe&lt;T&gt;{
      case Nothing
      case Something(T)
  
      init(){
          self = .Nothing
      }
  
      init(_ something: T){
          self = .Something(something)
      }
  
  }
  </code></pre>
  
  <p>However, when I try to create an empty <code>Maybe</code>, the <code>init()</code> initializer is not called. Instead, the other one <code>init(_ something: T)</code> is called with <code>T = ()</code>.</p>
  
  <p>What's going on? Why is the init without parameters being ignored?</p>
  
  <pre><code>var z = Maybe() // this calls init(_ something: T) with T = ()
  </code></pre>