IO.isUserError returns Bool in Haskell 1.4, not Maybe.
isDoesNotExistError (IOError _ NoSuchThing _) = True
isDoesNotExistError _ = False
-isUserError (IOError _ UserError s) = Just s
-isUserError _ = Nothing
+isUserError (IOError _ UserError _) = True
+isUserError _ = False
\end{code}
Showing @IOError@s
-- isFullError :: IOError -> Bool
-- isIllegalOperation :: IOError -> Bool
-- isPermissionError :: IOError -> Bool
--- isUserError :: IOError -> Maybe String
+-- isUserError :: IOError -> Bool
--IOHandle:openFile :: FilePath -> IOMode -> IO Handle
--IOHandle:stdin, stdout, stderr :: Handle
\end{code}