title: Partial application of 'mutating' method is not allowed
body: <pre><code>struct MyStruct {
      var count = 0
  
      mutating func add(amount: Int) {
          count += amount
      }
  }
  
  var myStruct = MyStruct()
  
  [1, 2, 3, 4].forEach(myStruct.add)
  // Partial application of 'mutating' method is not allowed
  </code></pre>
  
  <p>Why isn't using <code>forEach</code> like this allowed for mutating methods? I'm aware that I could do</p>
  
  <pre><code>for number in [1, 2, 3, 4] {
      myStruct.add(number)
  }
  </code></pre>
  
  <p>or</p>
  
  <pre><code>[1, 2, 3, 4].forEach { myStruct.add($0) }
  </code></pre>
  
  <p>instead, but neither are as clean as</p>
  
  <pre><code>[1, 2, 3, 4].forEach(myStruct.add)
  </code></pre>