IO errors
Ian Lynagh
igloo@earth.li
Wed, 28 Nov 2001 20:03:29 +0000
Hi guys,
Me again I'm afraid...
A quick look at the source looks like both GHC and NHC will simply pass
on errors from the OS, so for example with
module Main where
import IO
import Directory
main :: IO()
main = do catch (createDirectory "this/does/not/exist/foo")
(\e -> putStrLn $ show $ map (flip ($) e) errors)
errors :: [(IOError -> Bool)]
errors = [isDoesNotExistError,
isIllegalOperation,
isPermissionError,
isAlreadyExistsError]
both GHC and NHC give [True,False,False,False] (I don't seem to have a
hugs Directory.hs) while the library report only allows
isIllegalOperation, isPermissionError and isAlreadyExistsError. I
haven't looked for other cases of this.
(this is under Linux, don't know if it would behave differently under
other OSes).
Thanks
Ian