
On Fri, Oct 18, 2013 at 3:13 PM, David Thomas
With such a big speedup and not a lot of downside, I'd really rather it wind up central enough to be used in preference to nub wherever possible (including in base!). Perhaps they can duplicate the minimum functionality necessary from Data.Set, internally behind the scenes? Alternatively, maybe we can move nub out of base?
The string 'nub' does not appear anywhere (that I can find) in base outside of Data.List. All occurrences of 'nub' in Data.List are in the definition and export of nub and nubBy, except one use of nubBy in unionBy, which cannot switch to ordNub, and would have to have its own alternate function. Of all the libraries packaged with GHC, the only one I see that uses nub outside of tests is Cabal, which already depends on containers. And in fact, one of the libraries I grepped through _was_ containers, because it's already about as close as you can get to being in base without actually being there, and is certainly as close as many other things will be once we split up base into more packages. I don't think it's really accurate to suggest that containers is less core than base. It's not just, 'some library.' -- Dan