<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 20, 2013 at 11:39 AM, Ertugrul Söylemez <span dir="ltr">&lt;<a href="mailto:es@ertes.de" target="_blank">es@ertes.de</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>&gt; What is the state of container libraries?  I am looking for a library<br>
&gt; which provides:<br>
&gt;<br>
&gt; * unordered containers (for &quot;operational&quot; type safety, I don&#39;t want to<br>
&gt; impose orders on things that don&#39;t have them -- unordered containers<br>
&gt; does this)<br>
<br>
</div>You are imposing an order.<br></blockquote><div><br></div><div>I mean I don&#39;t want Ord instances for types with no &quot;natural&quot; order.  I don&#39;t mind that a container structure will impose the topological order, or that containers can be ordered by inclusion.</div>

<div><br></div><div>In particular, I have datatypes whose values represent incomparable &quot;atoms&quot; of some type.  A comparison between them should &quot;really&quot; yield bottom.  So an Ord-based container is not appropriate.  I&#39;d rather not have an Ord instance for these types and therefore statically eliminate that bottom.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><br>
<br>
&gt; * can handled nested containers (containers does that)<br>
&gt; * can be serialized easily, or better yet, has Generic instances<br>
&gt;<br>
&gt; Does such a library exist?  What are you using for Set and Map needs?<br>
<br>
</div>What&#39;s wrong with &#39;containers&#39; itself?  I prefer Map/Set over<br>
HashMap/HashSet, because the speed difference is small and only<br>
noticable for large maps/sets.  If you need multiple indices, there is<br>
IxSet.</blockquote></div><div class="gmail_extra"><br></div><div class="gmail_extra">I took a look at &#39;hashmap&#39;, which uses &#39;hashable&#39; and &#39;containers&#39; to implement hash containers.  I worried about the performance, and thought I&#39;d ask for opinions on containers.</div>

<br>My goal is to create an IxSet-like structure which can handle unordered types, and preferably whose indices can be derived GHC.Generics-ally.</div></div>