Tic-tac-toe (aka noughts and crosses) in Haskell.