title: Compiler: too many arguments given despite that all are given
body: <p>I want to use the struct <code>DataResponse</code> as parameter for <code>JSON()</code> to respond with the user. By initializing an instance of <code>DataResponse</code> I get the error message, that too many arguments are given, but gave all that are necessary. </p>
  
  <pre><code>type DataResponse struct {
      Status int         `json:"status"`
      Data   interface{} `json:"data"`
  }
  
  func GetUser(rw http.ResponseWriter, req *http.Request, ps httprouter.Params) {
      user := models.User{}
      // Fetching user from db
  
      resp := DataResponse(200, user)
      JSON(rw, resp) // rw is the ResponseWriter of net/http
  }
  </code></pre>
  
  <p>The following error message is thrown by the compiler:</p>
  
  <pre><code>too many arguments to conversion to DataResponse: DataResponse(200, user)
  </code></pre>
  
  <p><code>DataResponse</code> requires two parameters that are given and <code>Data</code> is an interface so it should accept <code>models.User</code> as datatype.</p>