Feedback request: priority queues in containers
kahl at cas.mcmaster.ca
kahl at cas.mcmaster.ca
Tue Mar 16 13:24:32 EDT 2010
Louis Wasserman wrote:
>
> I'm not willing to do this sort of typeclass wrapper thing, primarily
> because nothing else in containers does -- even though we might have a
> Mapping type class that handles both IntMap and Map, we don't.
>
> I'm inclined to let that design choice stand, as far as containers is
> concerned. It would make perfect sense to write a new package with such a
> type class and offering instances for the containers priority queue
> implementations, but I prefer to stick with the style that containers
> already seems to use -- that is, exporting separate modules without a
> unifying type class, but with nearly-identical method signatures.
Just an aside (and shameless plug ;-): Since the signatures overlap so much,
it is in fact easy to wrap these modules into instances
for many possible different type classes that one might consider using for
containers --- I have a tool that mechanises this instance generation,
available at:
http://sqrl.mcmaster.ca/~kahl/Haskell/ModuleTools/
More about this in the forthcoming TFP 2009 proceedings paper:
@InCollection{Kahl-2009_TFP,
author = {Wolfram Kahl},
title = {Haskell Module Tools for Liberating Type Class Design},
crossref = {TFP2009},
pages = {129--144},
chapter = {9},
abstract = {Design of Haskell type class hierarchies for complex purposes,
including for standard containers, is a non-trivial exercise,
and evolution of such designs
is additionally hampered by the large overhead
of connecting to existing implementations.
We systematically discuss this overhead,
and propose a tool solution, implemented using the GHC API,
to automate its generation.}
}
@Book{TFP2009,
title = {Trends in Functional Programming, {TFP 2009}},
booktitle = {Trends in Functional Programming, {TFP 2009}},
year = 2010,
editor = {Zolt\'an Horv{\'a}th and Vikt\'oia Zs{\'o}k and Peter Achten and Pieter Koopman},
address = {UK},
publisher = {Intellect},
note = {(In press)}
}
Wolfram
More information about the Libraries
mailing list