With Java's single-dispatch, we can dispatch on the basis of the receiver, but not the arguments. So, now we dispatch once on the original receiver, then we make the argument the new receiver and dispatch off it. We have two values to dispatch with, so we dispatch twice. Thus, this is an instance of the double-dispatch pattern.