On 8/10/07, Donald Bruce Stewart <dons@cse.unsw.edu.au> wrote:
It's using bit arrays.

Well I'm a total Haskell newbie, and you're using Haskell to write imperative code, so it's really hard for me to read, but looking at your code, you have:
(IOUArray Int Bool) -- an array of Bool
Bool is a 32-bit value in Haskell AFAIK?  (or possibly a machine-dependent sized value, but certainly not a bit?)