currentPlayer :: (Monad m) => StateT GameState m Player
currentPlayer = do
  state <- get
  use (playerWithID (state^.currentPlayerID))
currentPlayer :: (Monad m) => StateT GameState m Player
currentPlayer = do
  state <- get
  use (playerWithID (state^.currentPlayerID))
currentPlayer = do
  state <- get
  use (playerWithID (state^.currentPlayerID))