Why not `repartition[I,I2:Semigroup](p: I => IndexedSeq[I2])`?