depends on what exact semantics you want for overloads, but it might be
when you see an overloaded function check the top of the stack against the first argument of all functions in the overload set. filter out any that don't have a valid implicit conversion.
Then check the next argument etc.