У меня следующий код:
import Data.Binary.Get
import qualified Data.ByteString.Lazy as L
import qualified Control.Exception as E
main = do
let dat = L.pack [1,2,3,4]
E.catch (E.evaluate $ runGet getWord32be dat) (\_ -> return 0) (return 1)
putStrLn "Done"
Я получаю следующую ошибку:
Couldn't match expected type `m1 t -> m a'
against inferred type `IO GHC.Word.Word32'
In a stmt of a 'do' expression:
E.catch
(E.evaluate $ runGet getWord32be dat) (\ _ -> return 0) (return 1)
Но я не могу понять, в чем заключается несоответствие.Может кто-нибудь просветить?