```ts interface Foo { hello: string }; function bar1(...foos: Foo[]) { bar2(...foos); } function bar2(foo1: Foo); function bar2(foo1: Foo, foo2: Foo); function bar2(...foos: Foo[]) { return; } ``` Here we provide an error message like ``` Expected 1-2 arguments, but got 0 or more. ``` I just spoke to three engineers who had no indication of what was actually going wrong. We should * Inform the user that implementation signatures aren't part of the overload set, and that they should consider making the overload an implementation signature * Provide a quick fix to do so.