为什么要为此类型派生 Typeable
Why derive Typeable for this type
在xmonad
源代码中,我发现:
data Resize = Shrink | Expand deriving Typeable
我不明白为什么这需要派生自 Typeable
我看到了 Chrisdone 的一篇著名的 blog post,它解释了 Typeable 的各种用法。但是我在 xmonad
源代码中找不到任何场景。
有什么提示吗?
Typeable 总是可以派生出所有类型,所以……为什么不呢? xmonad 代码可能不会使用 Typeable
实例,但用户可能想要使用。
请注意 Typeable
是一个 class 其实例通常 不应 手动定义。
它是旧版本 GHC 的残余。现在 Typeable
是为所有类型自动派生的, deriving Typeable
什么都不做,但允许向后兼容。
在xmonad
源代码中,我发现:
data Resize = Shrink | Expand deriving Typeable
我不明白为什么这需要派生自 Typeable
我看到了 Chrisdone 的一篇著名的 blog post,它解释了 Typeable 的各种用法。但是我在 xmonad
源代码中找不到任何场景。
有什么提示吗?
Typeable 总是可以派生出所有类型,所以……为什么不呢? xmonad 代码可能不会使用 Typeable
实例,但用户可能想要使用。
请注意 Typeable
是一个 class 其实例通常 不应 手动定义。
它是旧版本 GHC 的残余。现在 Typeable
是为所有类型自动派生的, deriving Typeable
什么都不做,但允许向后兼容。