(Names of classes chosen arbitrarily, just to show issue)

Class Real has method `*' that can use argument Real.

I make class Complex. Class Complex also
has function `*' which can take either Real or Complex argument.
Object Complex can be created from Real by Complex.new(real_object).

I want to tell Ruby, that when Real object is called with Complex
argument it should be promoted to Complex and then appropriate
Complex method be called.

The only method I found is renaming all such methods to something
like `old_multiply', and redefining Real `*'. Is there any better way ?