
hi, what do you think about exporting the ArrowChoice function `left` from Data.Either? both modules live in base, so i think the usual arguments against reexporting don't apply (as much). it might be needed to split the core of Data.Either into Data.Either.Internal to let Control.Arrow break the dependency cycle though. that will --of course-- not solve problem, that people might not recognize that that's the function they need. but when exploring a library interactively (ghci) a reexport might have give people a clue that left _is_ what they want. and that other related functions might be in Control.Arrow. i'm sure it would have for my part. regarding the documentation enhancement: would the spelled-out instance for (->) in Control.Arrow help? i mean: when a user knows to look into Control.Arrow, it's not that hard to see, that left is the thing they are looking for. cheers, tobias florek