Just a dream:<br><div class="gmail_quote"><div>-separate interface and implementation for all containers, via type classes</div><div>-develop, by genetic programming techniques + quickcheck, a system that find the best container implementation for a particular program.</div>

<div><br></div><div>Is that suitable for a Google Summer of Code project?<br><br><div class="gmail_quote">2010/3/23 Alberto G. Corona <span dir="ltr">&lt;<a href="mailto:agocorona@gmail.com" target="_blank">agocorona@gmail.com</a>&gt;</span><div>
<div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The question can be generalized via type classes: Is there any common set of primitives encapsulated into a single type class that has instances for Strings (Data.List) ByteStrings, Data.Text, Lazy bytestrings, Arrays, vectors and wathever container that can store an boxed, unboxed, packed unpacked sequence of wathever including chars? All of them have folds, heads, tails and a lot of common functions with the same name, but since there is not a single type class, the library programmer can not abstract his code when it is possible, so the library user can chose the particular instance for his particular problem.<br>


<br><div class="gmail_quote">2010/3/23 Johann Höchtl <span dir="ltr">&lt;<a href="mailto:johann.hoechtl@gmail.com" target="_blank">johann.hoechtl@gmail.com</a>&gt;</span><div><div></div><div><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div>On 22.03.2010 14:15, Ivan Miljenovic wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 23 March 2010 00:10, Johan Tibell&lt;<a href="mailto:johan.tibell@gmail.com" target="_blank">johan.tibell@gmail.com</a>&gt;  wrote:<br>
   <br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
A sequence of bytes is not the same thing as a sequence of Unicode<br>
code points. If you want to replace String by something more efficient<br>
have a look at Data.Text.<br>
     <br>
</blockquote>
Though Data.Text still has the disadvantage of not being as nice to<br>
deal with as String, since you can&#39;t pattern match on it, etc.<br>
<br>
Whilst it may degrade performance, treating String as a list of<br>
characters rather than an array provides you with greater flexibility<br>
of how to deal with it.<br>
<br>
   <br>
</blockquote></div>
But doesn&#39;t this basically mean sacrifice performance / applicability for algorithmic beauty? Sure, pattern match comes in handy, but in the case of strings at a high price<div><div></div><div><br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div></div></div><br>
</blockquote></div></div></div><br></div>
</div><br>