
On 3 September 2011 12:53, Evan Laforge
To an extent, I wonder how much of this has been that arrays were considered to be bad in Haskell, so no-one used them and no-one bothered to try and improve the API much (and instead went and created Vector, etc.).
Right, so we have arrays with nicer APIs, it's just that IArray has been kind of left behind. I don't think arrays are bad in haskell, if that were true all those array libraries wouldn't be so popular! They might not be quite the go-to type as in other languages, but they still have their uses.
By "bad" I was referring to the API, not the data structure itself.
Any particular reason you used Data.Graph rather than fgl, etc.?
Well... it's built-in... I needed something simple... so I just hit the ghc stdlib doc and searched for "graph". Is this another "left behind" module? And if so... well, maybe it's in the same situation as IArray.
Pretty much; most people don't even think much of FGL. I _really_ should get around to expanding and improving Edward Kmett's graph library so that it covers more of a variety of common graph types and operations, but I've been busy on specialised graph libraries that I need lately.
Right, it's hard to dislike the underlying data structure, arrays are about as simple as you can get :) My guess was the same as yours, i.e. that it's been sort of neglected but it's a bootlib and H98 so nothing can happen to it quickly.
I can't realistically suggest a course of action here, other than "gosh someone should update these modules" to which everyone is likely to say "yes, it would be nice if you did that" :) Or maybe in 10 years vector will be mature and standard and the old Array stuff can be deprecated and removed. So that's why this was more of a little rant than actual constructive comment.
Maybe as a stop-gap some more useful/constructive examples/documentation on how to use Data.Array.IArray compared to vector, etc.? That said, apart from Data.Graph I don't know of many uses of it nowadays, as everyone seems to have migrated to vector for 1-Dimensional and hmatrix/repa for multi-dimensional. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com