а что если у меня вот такое: foo :: (ReaderT (IORef MyStuff) m, MonadIO m) => m () foo = handle (\(e :: SomeException) -> putTextLn $ show e) $ do doSomethingThatUpdatesIORe...
А не слыхал ли кто-нибудь о преподавании ФП для детей? А то вроде все курсы и книги по программированию для подростков с нуля - это всегда императивщина, мутабельные переменны...
можно сказать, что этот ридерт иореф это как глобальная переменная ведь? черт знает, кто где и в каком порядке её мутирует
а вот эта фигня хотя бы ещё актуальна? class Has field env where obtain :: env -> field grab :: forall field env m. (MonadReader env m, Has field env) => m field gra...
и так по одному классу на каждую фигню, которая есть в энве?
и написать инстанс для MonadState?