У меня есть монадическая функция getRate:
getRate :: String -> IO Double
Я бы хотел сопоставить эту функцию со списком строк. Обычно я бы просто сделал:
mapM getRate ["foo", "bar"]
но поскольку каждый вызов getRate выполняет сетевые вызовы, я бы хотел распараллелить карту, чтобы каждая скорость выбиралась в отдельном потоке (или, по крайней мере, распределялась по очередям). Я думаю о чем-то вроде
parMapM getRate ["foo", "bar"]
но функции parMapM нет, и parMap не работает с монадическими функциями.
Что я могу сделать?