Continuing roadblocks when trying to learn Haskell.
I am following the “Real World Haskell” and when it comes to getting one of their complex examples to work, I obtain the following error
“Ambiguous type variable e' in the constraint:GHC.Exception.Exception e’
arising from a use of `handle’ at FoldDir.hs:88:14-61
Probable fix: add a type signature that fixes these type variable(s)”
My relevant bits of code are:
import Control.Exception (bracket, handle)
maybeIO :: IO a -> IO (Maybe a)
maybeIO act = handle (\_ -> return Nothing) (Just `liftM` act)
How do I eradicate this error?
You need to specify a type for the handler-function’s argument, so it knows which kinds of exceptions to handle.
You can either do this by naming the function
Or by using the
ScopedTypeVariablesextension: