private static Surf.Set PartitionMap(Surf.Set T) { // Label the partition. Surf.Set R = new Surf.Set(); int i = 0; foreach (Surf.Set t in T) { if (t.Count > 0) { R.Add(new Surf.Tuple(new object[] { i, t })); i++; } } return(R.Unnest().Transpose()); }