Монада IO — она как GPL. Если ты зашкварил ею функцию, то раззашкварить обратно нельзя, причём все прочие функции, которые используют зашкваренную, тоже становятся зашкваренными.