I'll answer my own question; I've got a much better implementation, along with an HOpenGL-based frontend, at "http://ofb.net/~abe/hlife/hlife-0.1.tar.gz". It uses a FiniteMap of 5x5 UArrays that are created and destroyed as needed; this gives it a good balance of size (the grid is only bounded by the max values of an Int) and speed (my test program runs 100 generations in about three seconds). Abe