3
我有2个功能与“相交”接口:如何结合不同的Monad堆栈?
type Config = (param1, param2)
runExe :: [String] -> ReaderT Config IO ExitCode
someAction :: [String] -> ReaderT Config (MaybeT IO)()
由于两个runExe
和someAction
携带一成不变的配置,我想通过它含蓄而不做“要求”明确。类似如下:
someAction params = monadConvertor runExe ["some" , "params"]
我该如何实施monadConvertor
?
据我所知,monadConvertor需要提取IO ExitCode然后解除guard (rc == ExitSuccess)
。但我不知道是否有可能。
是的,它很好用)。但让我指出,在这种情况下,没有必要明确提防。 – kubivan