2015-01-20 9 views

cevap

10

bu tip liftIO kullanabilirsiniz bir MonadIO geçerli: Yani

liftIO :: IO a -> InputT IO a 

,

do ... 
    x <- liftIO $ runExceptT $ foo input 
    case x of 
    Left err -> ... 
    Right res -> ... 

Alternatif yerine Control.Monad.Trans.lift kullanın.

+0

Bu çözümü zaten denedim ancak bir derleme hatası alıyorum: '(lifti) ' – Paul

+0

'dan kaynaklanan (MonadIO (InputT IO)) için bir örnek basit' lift 'çözümü için aynı: Hayır 'lift'' – Paul

+0

@ Paul Şaşırtıcı bir kullanımından kaynaklanan (MonadTrans InputT) örneği ... Burada bir örneğim var. Belki de Control.Monad.IO.Class' ithal etmek gerekiyor? – chi

İlgili konular