function! s:__constructor(class, ...)
   let parameters = ""
   let body = ""
   let idx = 0
   if a:0 == 0 || a:1.default != 1
       for field in a:class.fields
           if idx != 0
               let parameters .= ", "
           endif
           let parameters .= field.type . " ". field.name
           let body .= "this.". field.name ." = ". field.name .";\n"
           let idx += 1
       endfor
   endif
   let result = "public ". a:class.name ."(". parameters. ") {\n"
   let result .= body
   return result . "}"
endfunction