Por que não há nenhum transformador IO em Haskell?

Todas as outras mônadas vêm com uma versão de transformador e, pelo que sei, a ideia de um transformador é uma extensão genérica de mônadas. Seguindo como os outros transformadores são construídos,IOT seria algo como

newtype IOT m a = IOT { runIOT :: m (IO a) }

para o qual eu poderia inventar aplicações úteis no local:IOT Maybe pode fazer uma ação de IO ou nada,IOT [] pode construir uma lista que pode ser mais tardesequenced.

Então, por que não há nenhum transformador IO em Haskell?

(Notas: eu vieste post no Haskell Cafe, mas não pode fazer muito sentido disso. Além disso,a página do Hackage para o transformador ST menciona um problema possivelmente relacionado em sua descrição, mas não oferece nenhum detalhe.)

questionAnswers(1)

yourAnswerToTheQuestion