I occasionally hit code like this:

val things : List[A \/ B] = ???
val (as, bs) : (List[A], List[B]) = ??? //insert something to do this

or in my current case I want Map[A, B \/ C] => (Map[A, B], Map[A, C])

Is there a nice way to do this in the general case F[A \/ B] with appropriate restrictions on F? It looks vaguely like a variation on the theme of Unzip.

Edit
Report