Is traceIO unnecessarily specialised to the IO monad?