
more concretely #if defined(__GLASGOW_HASKELL__) && ( __GLASGOW_HASKELL__ >= 707) --- do the deriving version here #else --- your current stuff #endif On Tue, Aug 5, 2014 at 12:46 PM, Carter Schonwald < carter.schonwald@gmail.com> wrote:
i assume 7.6 and 7.8, if we're talking GHC rather than GCC :)
in 7.8 you can't define userland typeable instances, you need only write deriving (Typeable) and you're all set. add some CPP to select the instances suitable
On Tue, Aug 5, 2014 at 12:41 PM, Volker Wysk
wrote: 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.
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users