Frequently when I&#39;m coding in Haskell, the crux of my problem is converting between all the stupid string formats.<div><br></div><div>You&#39;ve got String, ByteString, Lazy ByteString, Text, [Word], and on and on... I have to constantly lookup how to convert between them, and the overloaded strings GHC directive doesn&#39;t work, and sometimes ByteString.unpack doesn&#39;t work, because it expects [Word8], not [Char]. AAAAAAAAAAAAAAAAAAAH!!!</div>
<div><br></div><div>Haskell is a wonderful playground for experimentation. I&#39;ve started to notice that many Hackage libraries are simply instances of typeclasses designed a while ago, and their underlying implementations are free to play around with various optimizations... But they ideally all expose the same interface through typeclasses.</div>
<div><br></div><div>Can we do the same with String? Can we pick a good compromise of lazy vs strict, flexible vs fast, and all use the same data structure? My vote is for type String = [Char], but I&#39;m willing to switch to another data structure, just as long as it&#39;s consistently used.<br clear="all">
<div><br></div>-- <br><div></div>Cheers,<div><br></div><div>Andrew Pennebaker</div><div><a href="http://www.yellosoft.us" target="_blank">www.yellosoft.us</a></div>
</div>