Takes a predicate and a source channel and returns a vector of two channels, the first of which will contain the values for which the predicate returned true, the second those for which it returned false. The out channels will be unbuffered by default, or two buf-or-ns can be supplied. The channels will close after the source channel has closed.