all the sideEffects and dedup now take Function<Traverser<S>,...>. This ensures consistency throughout -- if you are passed a Traverser<S> you can process on that, not S. Thought for select() and path() (which operate post processing, its still Function<S,...>. Fixed #96