The documentation for `pointAndDerivatives(t, n)` clearly states the return value is a vector of at most n+1 elements:
```c++
/** @brief Evaluate the curve and its derivatives.
* This will return a vector that contains the value of the curve and the specified number
* of derivatives. However, the returned vector might contain less elements than specified
* if some derivatives do not exist.
* @param t Time value
* @param n The number of derivatives to compute
* @return Vector of at most \f$n+1\f$ elements of the form \f$[\mathbf{C}(t),
\mathbf{C}'(t), \mathbf{C}''(t), \ldots]\f$ */
virtual std::vector<Point> pointAndDerivatives(Coord t, unsigned n) const = 0;
```
Yet this example program shows it returning a vector that is too big:
```c++
#include <iostream>
#include <2geom/elliptical-arc.h>
int main()
{
auto arc = Geom::EllipticalArc({0, 0}, {1, 1}, M_PI, true, true, {1, 0});
for (int n = 0; n < 10; n++) {
std::cout << n << ' ' << arc.pointAndDerivatives(0.5, n).size() << '\n';
}
}
```
In the output below, we should have (second number) <= (first number) + 1:
```
0 2
1 4
2 6
3 4
4 5
5 6
6 7
7 8
8 9
9 10
```
However that fails for n = 0, 1, 2.




























