title: Is there a way to migrate a 0-arity method having parentheses to not having parentheses?
body: <p>Say I designed some API and shortsightedly gave a 0-arity function parentheses in its definition</p>
  
  <pre class="lang-scala prettyprint-override"><code>class Foo(value: String) {
    def chars(): Seq[Char] = value.toSeq
  }
  </code></pre>
  
  <p>This means you obnoxiously have to provide empty parentheses if you want to follow a call to this method with an <code>apply</code> on the returned <code>Seq</code>:</p>
  
  <pre class="lang-scala prettyprint-override"><code>val f = new Foo("Hello")
  println(f.chars()(3))
  </code></pre>
  
  <p>This is obviously not ideal, it would be better to be able to write:</p>
  
  <pre class="lang-scala prettyprint-override"><code>println(f.chars(3))
  </code></pre>
  
  <p>Of course, if you remove the parentheses from the method definition, it breaks all existing uses that do provide parentheses. Is there a way to migrate a 0-arity function from having parentheses to not having them without breaking all of the uses?</p>