On Sat, Apr 30, 2011 at 9:24 AM, Isaac Dupree <ml@isaac.cedarswampstudios.org> wrote:
(After code cleanup), you *could* re-export base:GHC.Event.PSQ as containers:Data.PSQ ... then if base ever stops needing it, you can copy the implementation into containers (where I guess it logically belongs) without breaking everything?
I don't think it makes much sense to do anything with the PSQ code in GHC.Event. When we were writing the event manager, we tore out every piece of non-essential PSQ code in order to keep the mental footprint of base as small as we reasonably could. You'll find a trimmed-down and specialised copy of IntMap in the event manager subtree, too.
Tying general-purpose data structures to base in any way would be a mistake, I think, as it would constrain them to a slow and laborious maintenance and improvement cycle. If you want evidence, witness the fitful progress of all the good work on the containers package over the past 18 months. Indeed, to avoid the containers morass, I'd recommend putting that PSQ implementation in a package of its own and just leaving it at that (assuming there's not already a copy on Hackage).