Interface that defines a command used by AExtVisitor that has specific
types for its return value, R, its index value, I, its input parameters, P,
and its host, H. The host is restricted to being a subclass of
IExtVisitorHost who takes the same index value and who accepts a visitor
that takes this same host type.
An IExtVisitorCmd is associated with every recognized case of an AExtVisitor,
including the default case.
Usage:
new IExtVisitorCmd<MyReturn, MyIndex, MyParam, MyExtVisitorHost>(){
public <T extends IExtVisitorHost<Integer, ? super MyExtVisitorHost>> MyReturn apply(MyIndex index, T host, MyParam... params) {...}
}