> I take it that size of the array does not depend on  arg ?

> Apparently, despite your attempts to force evaluation, the array still
> contains many unevaluated expressions. Documentation for the vector
> pacakge reveals that Data.Vector is a *boxed* array, i.e. the entries
> are only evaluated on demand, so that's where the unevaluated
> expressions linger around.

> Unless you need the extra laziness - which you probably don't, given how
> you've structured your algorithm - you might want to switch to
> Data.Vector.Unboxed or Data.Vector.Storable.

Correct. The array size doesn't depend on arg (arg only controls how much
of the input list to process.

I did not realize that the boxed arrays would have this extra-lazy behavior.
The reason I chose boxed is because I needed to store these very large trees
(custom data type) that I referenced in an earlier question. Since D.V.Unboxed
and Storable don't appear to support non-standard data types, is there another
package that might better fit my needs? Data.IntMap perhaps? I originally
chose an array over a map because I need fast random access to individual
elements (and cheap modification).

Thanks again,

Travis Erdman