Use GameState monad in solver