W/r/t the code below, would somebody please explain the sense of having a main function in a module that is not named Main.hs?
It's embedded test code; you can build a test program for the StateGame monad by using the --main-is parameter to GHC, or leave that off and get a library.