title: Outer constructor that has the same number of arguments as the field values
body: <p>How can I define an outer constructor that has same number of arguments as the field values? What I want to do is something like this:</p>
  
  <pre><code>struct data
      x
      y
  end
  
  function data(x, y) 
      return data(x-y, x*y)
  end
  </code></pre>
  
  <p>But it obviously causes stackoverflow. </p>