Currently no check is performed to ensure consistency of vector types, mainly `Vector` and `SVector` (see #207). I think that the return type of the function should be checked and the input interval should be converted accordingly. Namely for `roots(f, X)` - `f(X)::T`, `X::S` -> convert `X` to `T` (typically `T == SVector` and `X == Vector`) We could also check the jacobian, if it is given explicitly.