Monad m => (r -> a) -> ReaderT r m areader1 :: ReaderT Int IO Intid具有a -> a类型,并且有一个用于IO的Monad实例,因此编译器可以推断该类型。根据我的解释,我应该能够显式地获得与error1 only中相同的类型,并具有类似于此的一些强制:
reader2 :: ReaderT Int <em
我在ReaderMonad中有代码,以便将文件句柄作为不可见的参数传递到Reader链中。在writeMail中,我正在尝试创建一个读取器,当使用runReader运行时,它会产生IO ()输出,该输出本身就是一系列IOmonad的结果writeMail mail = do wmb <- writeMail