Consider the following:
> length $ Vector.accum undefined (Vector.replicate 10 ()) undefined
*** Exception: Prelude.undefined
Since accum never changes the length of the vector, the result here should clearly be 10, however the accumulate list is evaluated.
Here's a workaround for this:
> length $ Vector.generate 10 (Vector.accum undefined (Vector.replicate 10 ()) undefined Vector.!)
10
If it's like this for performance, then this strictness and the workaround should be documented.