Partition a data structure based on a boolean predicate.
Separated<KT, A, A> partition(bool Function(A a) f) => (filter((a) => !f(a)), filter(f));