Control.Exception文档说我可以执行以下操作来创建自己的异常:
data MyException = ThisException | ThatException
deriving (Show, Typeable)
instance Exception MyException
如果我将其粘贴到文件中并进行编译(在导入Control.Exception和Data.Typeable之后),我得到:
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'
我必须打开此扩展程序才能拥有用户定义的例外吗?如果没有,请有人举个例子。感谢。
答案 0 :(得分:5)
是的,您需要启用该扩展程序。尝试手动编写Typeable
实例并不是一个好主意,因为它与GHC的内部有一些联系。