Fixed strictness issue: it was due to using (duh) the strict ST monad!