为什么派生此类型的Typeable

时间:2018-09-29 19:13:40

标签: haskell xmonad

xmonad源代码中,我发现:

data Resize     = Shrink | Expand   deriving Typeable

我不知道为什么需要从Typeable来推导

我看到Chrisdone着名的blog post,它解释了Typeable的各种用法。但我在xmonad源代码中找不到任何情况。

有任何提示吗?

2 个答案:

答案 0 :(得分:1)

Typeable始终可以派生所有类型,所以...为什么不呢? xmonad代码可能不使用Typeable实例,但是用户可能想要使用。

请注意,Typeable是一个类,通常不应手动定义其实例。

答案 1 :(得分:1)

它是旧版本的GHC的残余。如今,Typeable是自动为所有类型派生的,deriving Typeable什么也不做,但允许向后兼容。