splitWhen splits a sequence into components delimited by
separators, where the predicate returns True for a separator element.
The resulting components do not contain the separators. Two adjacent
separators result in an empty component in the output. The number of
resulting components is greater by one than number of separators.
Since 0.9.3