Old code broken by new Typeable class

Volker Wysk verteiler at volker-wysk.de
Tue Aug 5 16:41:05 UTC 2014


Hi!


I've been working with GHC-4.6.3, and updating to GHC-4.8.3 breaks my code, 
because the Typeable class has been changed. The compiler produces this 
message:


---------
src/HsShellScript/ProcErr.chs:2294:4:
    ‘typeOf’ is not a (visible) method of class ‘Typeable’
---------


I want to define System.Posix.Process.ProcessStatus to be an instance of 
Typeable, so I can throw and catch it as an exception. ProcessStatus isn't 
typeable by default.


Is it still possible to make ProcessStatus a member of Typeable? How? 
Obviously, you can't accomplish it by deriving Typeable, because the definition 
can't be changed any longer.


This is the spot in question:


----------
import System.Posix.Process
import Data.Typeable


{-
data ProcessStatus = Exited ExitCode
/                   | Terminated Signal/
/                   | Stopped Signal/
                   deriving (Eq, Ord, Show)
-}


instance Typeable ProcessStatus where
   typeOf = const tyCon_ProcessStatus


tyCon_ProcessStatus = mkTyConApp (mkTyCon3 "hsshellscript"
                                           "HsShellScript.ProcErr"
                                           "Posix.ProcessStatus") []


instance Exception ProcessStatus
----------


Thanks,
V.W.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20140805/63bd3d7a/attachment.html>


More information about the Glasgow-haskell-users mailing list