+ runST -> runIdentity
+ increased usage of delayed arrays