I erred at the start of 4th paragraph:
>>iBATIS errs out on #4 because it invokes
BImpl.setA(), but gets back only the interface from BImpl.getA().
It should read:
>>iBATIS errs out on #4 because it invokes setName() from BImpl.getA(), but the method doesn't exist at this level.