// retrieve generic parameters
// *** NOTE:: NOT SURE IF THIS CODE IS CORRECT: I (interpolator) and B (bootstrap) are being passed as formal parameters.
// *** See InterpolatedDiscountCurve: default formal arguments are "guessed" from generic parameters via ...
// *** new TypeTokenTree(InterpolatedDiscountCurve.class).getElement(0)
// *** in some constructors, which assume defaults.
final TypeTokenTree ttt = new TypeTokenTree(this.getClass());
final Class<?> classT = ttt.getElement(0);
final Class<?> classI = ttt.getElement(1);
final Class<?> classB = ttt.getElement(2);
QL.require(classT!=null , "T is null"); // TODO: message
QL.require(classI!=null , "I is null"); // TODO: message
QL.require(classB!=null , "B is null"); // TODO: message
// instantiate base class and call super constructor