11
如果我有單子一堆,說IO
,State
和Error
,並且只使用IO
和Error
功能。如何從堆棧中刪除中間的State
monad以便我可以使用我的函數?如果訂單是IO
,Error
,State
,我可以用lift
相匹配的類型,但我希望能夠用我的功能,如果單子堆棧包含IO
和Error
並有可能在任何秩序的其他單子。例如:操縱單子堆棧
fun :: ErrorT String IO()
fun = throwError "error"
someCode :: ErrorT String (StateT Int IO)()
someCode = do
-- I want to use fun here
這是真棒,謝謝! – 2012-03-08 01:46:39