splits a union into its component parts.
fun test() { listOf( Pair("A", 1).bothIor(), Pair("B", 2).bothIor(), "C".leftIor() ).separateIor() shouldBe Pair(listOf("A", "B", "C"), listOf(1, 2))}