
Am Sonntag 14 Juni 2009 06:33:07 schrieb Erik de Castro Lopo:
Daniel Fischer wrote:
a) you only imported the type, not the data constructor(s) b) confusingly, the constructor of IOException is IOError:
data IOException = IOError { ioe_handle :: Maybe Handle, -- the handle used by the action flagging -- the error. ioe_type :: IOErrorType, -- what it was. ioe_location :: String, -- location. ioe_description :: String, -- error type specific information. ioe_filename :: Maybe FilePath -- filename the error is related to. } deriving Typeable
instance Exception IOException
Ok, I can see whats wrong, but I still have no idea how to fix it.
Erik
Ah, I didn't follow the link yesterday, that code is from 2007. With ghc-6.10, Control.Exception has been revamped, Exception is no longer a datatype but a type class. Before 6.10, IOException was a constructor of Exception. Simple solution: import Control.OldException instead of Control.Exception Harder long-time solution: rewrite the code to work with the new system. I would first use the simple solution and then see whether it's worth the rewrite. Cheers, Daniel