
On Thu, May 29, 2003 at 03:39:11PM +1000, Andrew J Bromage wrote:
As some of you know, I'm hacking up Edison. I'd like some suggestions on namespace issues. Note that at the moment, "Edison" has its own top-level name in the libraries document, and I'm happy for things to stay that way for now.
I'm not sure that the separate top-level name is justified. It will, presumably, be a separate package. I'd prefer to have it under Data, with subhierarchies Data.Association, Data.Collection and Data.Sequence. (Ideally Data.FiniteMap and Data.HashTable would get consistent names too.) That's just for the existing Edison structure.
The main feature of Edison which distinguishes it from other data structure libraries is that you do not choose data structures by the set of operations which you can perform on them because, for example, all Sequences support the same set of operations. Instead, you pick your data structure by implementation, and live with the fact that some operations are going to be slow on some implementations (e.g. snoc on simple lists is O(n)).
Isn't it the other way round -- you write a program using certain operations, and then pick an implementation in which those operations are fast? But things like Data.Queue would also be useful.