filteredAbilitiesOnField :: Monad m => (Ability -> Bool) -> StateT GameState m [(CardID, Ability)]
filteredAbilitiesOnField pred = do
  all <- allAbilitiesOnField
  return $ filter (\(_,ability) -> pred ability) all
filteredAbilitiesOnField :: Monad m => (Ability -> Bool) -> StateT GameState m [(CardID, Ability)]
filteredAbilitiesOnField pred = do
  all <- allAbilitiesOnField
  return $ filter (\(_,ability) -> pred ability) all
filteredAbilitiesOnField pred = do
  all <- allAbilitiesOnField
  return $ filter (\(_,ability) -> pred ability) all