* A `SplitPath` is now a tuple of `_PathPart` objects, this changes the return type of `split()`
* `iterate()` now throws a `ValidationError` when there is a mismatch between the path part type and the collection type where previously it threw an `InvalidIterationError`; this is now consistent with all other functions.