The Control.Exception documentation says I can do the following to create my own exception:
data MyException = ThisException | ThatException
deriving (Show, Typeable)
instance Exception MyException
If I paste this into a file and compile (after importing Control.Exception and Data.Typeable), I get:
exp.hs:6:20:
Can't make a derived instance of `Typeable MyException'
(You need -XDeriveDataTypeable to derive an instance for this class)
In the data type declaration for `MyException'
Must I turn on this extension in order to have user-defined exceptions? If not, someone please provide an example. Thanks.