Porting xjm's crap game from C++ to Haskell