Hello,<div><br></div><div>I have a somewhat related project suggestion. As far as I can tell there is no good Set / Map like data structure which supports multiple keys.</div><div><br></div><div>
The closest option is happstack-ixset. However, it provides no real type safety, and I suspect it is not very efficient:</div><div><br></div><div><a href="http://hackage.haskell.org/package/happstack-ixset">http://hackage.haskell.org/package/happstack-ixset</a></div>
<div><br></div><div>As an experiment I started a data-type loosely based on kd-trees and the existing Data.Map:</div><div><br></div><div><a href="http://src.seereason.com/haskell-kdmap/">http://src.seereason.com/haskell-kdmap/</a></div>
<div><br></div><div>This type supports two keys. You can do looks using one or both keys. Ideally, though, you would be able to support an arbitrary number of keys, and do queries that are more complex than a straight lookup.</div>
<div><br></div><div>The aim is to produce a type which supports many of the same operations as a normal database table. (But with out going so far as to be exactly like a database table).</div><div><br></div><div>- jeremy</div>

<div><br><div class="gmail_quote">On Wed, Mar 3, 2010 at 8:23 AM, Milan Straka <span dir="ltr">&lt;<a href="mailto:fox@ucw.cz" target="_blank">fox@ucw.cz</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi all,<br>
<br>
I have started an internship in Cambridge and will spend 3 months on<br>
Haskell. One of the possible projects is improving the containers<br>
library. Things I am thinking about:<br>
- measuring the performance of existing implementations (notably Map and<br>
  Set) and possibly improve them (either without or with API changes),<br>
- adding Queue and a PriorityQueue,<br>
- maybe adding a generalized trie,<br>
- maybe adding a hashtable (more like a trie of the hashes, something in<br>
  the line of Ideal hash trees; and maybe a &#39;classic&#39; hash modifiable in<br>
  the ST monad?)<br>
<br>
I would be grateful for any comments, thoughts or wishes.<br>
<font color="#888888"><br>
Milan Straka<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
</font></blockquote></div><br></div>