<div dir="ltr">Hello,<div><br></div><div>I'm working on a project where I use StateT MyState IO a to keep track of the state. MyState is deeply nested and I use lens to help me more easily access and modify the state.</div><div><br></div><div>Just about yesterday I found someone mentioning about using ReaderT (IORef MyState) IO a instead of StateT MyState IO a because we are already in IO. </div><div><br></div><div>Can someone explain to me what are the benefits of these different approaches? What about Garbage Collection in both cases (if there is any difference at all)? Can you use lens package to access and update the state which is hidden behind IORef ?<br><div><br></div><div>Thanks,</div><div>Konstantin Saveljev</div></div></div>