派生类型及其依赖项

yai*_*chu 2 haskell typeclass derived-types deriving

我一直在为我的索引玩newtype包装器以避免错误,我有一些像这样的代码:

{-# LANGUAGE GeneralizedNewtypeDeriving #-}

newtype PersonIdx = PersonIdx Int
  deriving (Enum, Eq, Integral, Num, Ord, Real, Show)
Run Code Online (Sandbox Code Playgroud)

要派生Integral,还必须派生所有依赖项(因此上面的类型类列表).

有没有办法让它Integral随之衍生出所有依赖关系?我会想象:

newtype PersonIdx = PersonIdx Int
  deriving (Integral(..))
Run Code Online (Sandbox Code Playgroud)

Dar*_*rio 6

不,没有捷径.您必须明确地从所有依赖类型类派生,但可以通过键入:i Integralghci 轻松找到它们.

  • 我想知道是否有一个原则性的原因,或者只是没有人实现了有问题的捷径. (2认同)