Oh, I think I got it. You literally have a protocol and then in one of the implementations, you define additional clauses.
Yes, the warning is expected. The type system is enforcing that you are implementing the protocol exactly for the type of that implementation. We could not emit any warning, but then it means someone may accidentally define additional clauses, and they won’t get any help from the type system. So we chose to enforce that the first argument matches the implementation.
If the description above is not correct, then please provide a way to reproduce this or post a larger code snippet. Thanks.






















