Generic tries (long)
lemming at henning-thielemann.de
Sun Jun 22 16:39:28 EDT 2008
On Sat, 21 Jun 2008, Iavor Diatchki wrote:
> Hi Jamie,
> thanks for doing this---I think that the functions in the API look
> good. Of course, one can always think of more :-) One that I often
> find useful when working with Data.Map is a function that removes a
> key from a map and also returns the associated value---a kind of
> destructive lookup.
> I think that the library would be better if you exposed a
> non-overloaded API for the map(s?) that you plan to implement. This
> is useful because (i) most of the type I anticipiate using a single
> type of map, and concrete types lead to more accurate types in type
> inference, (ii) it makes the API Haskell'98 and hence likely to work
> on most Haskell implementations out there. If you really think that
> the overloading is useful, then you could provide separate modules
> that provide the class+instances in terms of the non-overloaded API
> and add a cabal flag to turn these on/off.
That's certainly not a good idea, since other modules must be sure, that
if package generic-tries is installed that then the advanced API is
available. Thus the advanced API must be moved to a separate package.
(I prefer that separation.)
More information about the Libraries