Because of prior problems with failure to access member types (which are
interpreted as properties), I've found a way to hack around it by declaring
a static member of the given type, and then using typeof on that member.
However, when trying to use it in base classes, as shown below, it's not
acceptable to the compiler.
template FilteredNotionalRange(R, F) { class FilteredNotionalRange
// : public R.range_type
: public typeof(R.range_type_hack)
{
. . .

Because of prior problems with failure to access member types (which are
interpreted as properties), I've found a way to hack around it by

a static member of the given type, and then using typeof on that member.
However, when trying to use it in base classes, as shown below, it's not
acceptable to the compiler.
template FilteredNotionalRange(R, F) { class FilteredNotionalRange
// : public R.range_type
: public typeof(R.range_type_hack)
{