派生类型及其依赖项
Posted
技术标签:
【中文标题】派生类型及其依赖项【英文标题】:Deriving a type and its dependencies 【发布时间】:2011-01-06 11:19:04 【问题描述】:我一直在为我的索引使用新类型包装器以避免错误,我有一些这样的代码:
-# LANGUAGE GeneralizedNewtypeDeriving #-
newtype PersonIdx = PersonIdx Int
deriving (Enum, Eq, Integral, Num, Ord, Real, Show)
要派生Integral
,还必须派生其所有依赖项(因此上面列出了类型类)。
有没有办法让它继承Integral
的所有依赖项?我会想象这样的事情:
newtype PersonIdx = PersonIdx Int
deriving (Integral(..))
【问题讨论】:
【参考方案1】:不,没有捷径。您必须显式地从所有依赖类型类派生,但可以通过在 ghci 中键入 :i Integral
轻松找到这些。
【讨论】:
我想知道这是否有原则上的原因,或者只是没有人实施有问题的快捷方式。 在 Haskell 的哲学中,一切都是明确的。语言中的“捷径”很少,这个例子也不例外。以上是关于派生类型及其依赖项的主要内容,如果未能解决你的问题,请参考以下文章
pytest 不承认基类中的 PASSED 依赖项导致派生类中的 SKIPPED 测试