> 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.
Two possibilities: either createDirectory should act like 'mkdir -p' and make the whole path, or the library report should document isDoesNotExistError as a possible error thrown by createDirectory. I'd vote for the latter. No doubt there are many other cases of this, we should really do a full audit of the I/O library specs. Cheers, Simon _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell