
On Fri, 15 Feb 2008, GHC wrote:
Comment (by igloo):
Having reread the thread, I think we are here:
We are agreed that we should add {{{ lefts :: [Either a b] -> [a] rights :: [Either a b] -> [b] }}} and that we should add a function with type {{{ [Either a b] -> ([a],[b]) }}} Possible names include {{{ splitEithers unzipEithers partitionEithers catEithers leftRights leftsAndRights boths demuxEithers }}} While choosing a name, we should bear in mind that we might want to define a function with type {{{ (a -> Either b c) -> [a] -> ([b],[c]) }}} at some point in the future.
I am reopening discussion of this trac. Here are mine (and some others) comments on the possible names: splitEithers - reject because the result of split should be such that the concatination of the resulting two lists should be (isomorphic) to the original list. unzipEithers - reject because unzip should have the same length as the original lists. Also unzipEithers suggests there is a zipEithers somewhere. catEithers - reject because this isn't a concatination. leftRights, leftAndRights, boths - reject because they are mnenomic enough. demux, demuxEithers - these are less popular options. demux is too general, but may make for an intersting class definition somewhere. partitionEithers - This is (I believe) the most popular (or least controversial) name. The output of our function has similar properties to the output of partition. The only objection possible objection is that partitionEithers perhaps should have type (a -> Either b c) -> [a] -> ([b],[c]), ie. partitonEithers should take a function as a parameter. The response to this objection by saying that the extra `Eithers' in the name fills the place of the predicate/function. Also the function of type (a -> Either b c) -> [a] -> ([b],[c]) is less widely used that the function we are trying to name in this trac. -- Russell O'Connor http://r6.ca/ ``All talk about `theft,''' the general counsel of the American Graphophone Company wrote, ``is the merest claptrap, for there exists no property in ideas musical, literary or artistic, except as defined by statute.''