title: Init of SwiftUI View with @Binding optional property seems ambiguous
body: <p>Given my assumptions, from the code below, that:</p>
  
  <ul>
  <li><code>$a</code> returns a <code>Binding&lt;Bool&gt;</code></li>
  <li><code>Binding.constant(a: self.a)</code> also returns a <code>Binding&lt;Bool&gt;</code></li>
  </ul>
  
  <p>then why does <code>B(a: Binding&lt;Bool?&gt;)</code> reject (correctly) the first with <code>"Cannot convert value of type 'Binding&lt;Bool&gt;' to expected argument type 'Binding&lt;Bool?&gt;'"</code> but accept the second?</p>
  
  <pre><code>import SwiftUI
  
  struct ContentView: View {
      @State var a: Bool = false
  
      var body: some View {
          A(a: $a)
      }
  }
  
  struct A : View {
      @Binding var a: Bool
  
      var body: some View {
              //B(a: $a)
              // ^~~~ 
              // Fails with "Cannot convert value of type 'Binding&lt;Bool&gt;' to expected argument type 'Binding&lt;Bool?&gt;'"       
              B(a: Binding.constant(self.a))
      }
  }
  
  struct B : View {
      @Binding var a: Bool?
  
      var body: some View {
  
          if a == nil {
              return Text("a is nil")
          } else {
              return Text("a is \(a! ? "true" : "false")")
          }
      }
  }
  </code></pre>