0
我正在創建一個將讀取二進制文件的Conduit。東西可能會出錯,所以我需要一個monad來處理一些錯誤;現在Maybe
已經足夠了。MonadResource用於讀取具有錯誤處理的文件
我想使用sourceFile
,它要求管道monad是MonadResource
,這是問題的關鍵。
我從the docs看到,例如, MaybeT m
有一個實例,但它需要m
已經是MonadResource
;事實上,所有情況都是如此。由於我的理解有限,這聽起來像雞與雞蛋,要求我無論如何都手寫一個MonadResource
實例?
我認爲要讀取文件,我的monad必須包含IO。那麼這是否意味着我必須爲MaybeT IO
寫一個MonadResource
實例?如果是這樣,任何關於如何做到這一點的指針?
'(MonadThrow米,MonadBase IO米,MonadIO米,應用型米)=> MonadResource( ResourceT m)'不是遞歸的。 – melpomene
啊哈,錯過了。時間潛入並學習'ResourceT'如何工作我猜.. – jorgen
只是某種形式的'main = runResourceT。 runConduit $ sourceFile ...應該可以工作。 –