versão preguiçosa do mapM

Suponha que eu esteja recebendo uma lista grande de itens enquanto trabalho com o pedido de veiculação:

as <- getLargeList

Agora estou tentando aplicarfn :: a -> IO b paraas:

as <- getLargeList
bs <- mapM fn as

mapM tem tipomapM :: Monad m => (a -> m b) -> [a] -> m [b]e é disso que preciso em termos de correspondência de tipos. Mas constrói toda a cadeia na memória até retornar o resultado. Eu estou procurando analógico demapM, que vai funcionar preguiçosamente, para que eu possa usar chefe debs enquanto a cauda ainda está construindo.

questionAnswers(2)

yourAnswerToTheQuestion