Array interface refactoring
Benjamin.Rudiak-Gould at cl.cam.ac.uk
Wed Feb 22 13:47:19 EST 2006
While we're on the topic, I have a couple of problems with the current array
system that cut deeper than the naming:
* The function for getting the bounds of an MArray is pure, so the
interface can't accommodate resizable arrays.
* unsafeAt, unsafeRead and unsafeWrite take 0-based indices, and the
bounds checking and conversion is handled externally, based on the
bounds you return. This means the interfaces can't support array
windowing, at least in the multidimensional case. I'd be happy with
windowing for one-dimensional arrays only, but there's no way to
restrict your array type to one-dimensional index types.
More information about the Haskell-prime