Does "for" always checks the type of first argument in each function defined in a protocol?
EDIT (rephrasing): When protocol method has only one argument, implementation is found based on the type of this single argument (either direct or as Any). When protocol method has multiple arguments, which one is used to find the corresponding implementation? Is it always the first one? Can it be changed?