title: Setter overloading in Kotlin
body: <p>When trying to define a setter that accepts a parameter type that can be used to construct a property, thusly:</p>
  
  <pre><code>class Buffer(buf: String) {}
  
  class Foo {
      var buffer: Buffer? = null
          set(value: String) {
              field = Buffer(value)
          }
  }
  </code></pre>
  
  <p>I get the error message: </p>
  
  <blockquote>
    <p>Setter parameter type must be equal to the type of the property</p>
  </blockquote>
  
  <p>So what's meant to be the Kotlin way of doing this?</p>