One difficulty that has nothing to do with performance but esthetics, is
that I'm not yet able to have these two methods have the same name :
protected def varArgN[A,B <% NumericalExpression[A]](b: B) = ..
protected def varArgNN[A,B <% NonNumericalExpression[A]](b: B) = ..
without having an ambiguity at the call site !
ML