Looks to me like all overload routines will get the same 3 or 4 parameters. The conversion "operators" seem to follow the same rules as
unary operators, which are the rules for
binary operators tweaked a little: right (or only) operand, left operand (=undef if unary), reversed/assignment flags, and desired method (only if calling nomethod).