Haskell game engine, take 2