このコードが動作する理由
import qualified Control.OldException as E
しかし、一緒ではありません
import qualified Control.Exception as E
コードは次のとおりです。
fileContents <- (readFile "shpm.txt") `E.catch` (\_ -> return "")
「新しい」例外で発生するエラーは次のとおりです
Ambiguous type variable `e0' in the constraint:
(E.Exception e0) arising from a use of `E.catch'
Probable fix: add a type signature that fixes these type variable(s)
In a stmt of a 'do' block:
fileContents <- (readFile "shpm.txt")
`E.catch` (\ _ -> return "No Tasks")