<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><a href="http://hackage.haskell.org/package/queuelike" target="_blank">http://hackage.haskell.org/package/queuelike</a></blockquote>

<div>I wrote this one.  Heh.  This is an improvement on it.</div><div><br></div><div>More importantly, what I wanted to achieve by adding priority queues to containers was having a canonical implementation for a ubiquitous data structure, which has a simple and user-friendly interface (something the queuelike package, above, attempts but isn&#39;t extraordinarily successful at), which is guaranteed to perform efficiently and correctly.</div>

<div><br></div><div>As a comparison example, there are many, many finite map implementation packages.  (I wrote TrieMap, which is a pretty involved automatic generalized trie map type inference system...yeah.)  There&#39;s a reason, however, that Data.Map exists, and that so many people use it when an algorithmically superior implementation might exist on Hackage -- because it&#39;s programmer-friendly and accessible, and because its performance is well-understood and has been thoroughly verified.  When I use Data.Map, I&#39;m not trusting some random schlub to have written bug-free code -- I&#39;m trusting the Haskell built-in libraries, and the people who write and maintain those libraries.</div>

<div><br></div><div>I think priority queues are ubiquitous enough to deserve the same treatment.</div><div><br></div><div>On another note, Ian, it&#39;s really not very clear what the proper procedure for adding test suites is.  Is it to just add a tester program separately from the patch?  Is it to put the test suites somewhere within the containers folder, and have them be an integral part of the patch?  There seem to be some sort-of-test-ish files in the containers package already, but I have no idea how to add new tests, and if the existing interface is extensible, it&#39;s not at all clear how to extend it.</div>

</div>