choose() supports choose(predicateTraversal,trueTraversal,falseTraversal).
I have lots of code that does this:
That is, if the predicate traversal doesn't hold, I simply want the incoming traverser to be emitted – identity(). This is sort of like optional(), but the predicate is something different from the branch. It would be nice to be able to simply say:
...where its understood that a "false" means identity().