【问题标题】: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(..))

【问题讨论】:

    标签: haskell typeclass derived-types deriving


    【解决方案1】:

    不,没有捷径。您必须显式地从所有依赖类型类派生,但可以通过在 ghci 中键入 :i Integral 轻松找到这些。

    【讨论】:

    • 我想知道这是否有原则上的原因,或者只是没有人实施有问题的快捷方式。
    • 在 Haskell 的哲学中,一切都是明确的。语言中的“捷径”很少,这个例子也不例外。
    猜你喜欢
    • 2015-07-07
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多