There are two big differences between Hash and Array. Array semantics include listing keys which have not been assigned to yet. This is really an issue for the accessing functions, not the underlying data.
Curly braces mean look up by string, and square brackets mean look up by integer.
With this in mind, it becomes possible to consider implementing both container types as sorted trees, possibly transparently switching to block offset arrays when Array is sufficiently dense. The one tree framework could be used for both types of trees, by switching the comparison function. Tree search may be faster than hash function calculation for easily compared data. The above is written from memory of conversation in August on perl6-internals.