Interesting discussion, but it seems to me that Haskell already
provides the best of both worlds, namely

  a. Efficient implementation of arrays as data objects, with indexing
     as a projection function; and

  b. Definition of functions with (Ix a) domains by indexing an array
     behind the scenes or by any other rule.

Arrays satisfy the needs of an important user community.  Is there
something more needed to satisfy the general-function community?

Reply via email to