Tic-tac-toe in Haskell