> Should this be `evalDerivative_()` rather than `evalDerivative()`

no, that's correct: the version without the underscore needs to first find the segment index (using bisection) and then calls the method with the underscore. given that the segment index is already known here (we are at the extreme left), calling the version with the underscore directly is more performant...