Вопрос

Я экспериментировал с обертками newtype для своих индексов, чтобы избежать ошибок, и у меня есть такой код:

{-# LANGUAGE GeneralizedNewtypeDeriving #-}

newtype PersonIdx = PersonIdx Int
  deriving (Enum, Eq, Integral, Num, Ord, Real, Show)

Чтобы вывести Integral, необходимо также получить все его зависимости (отсюда и приведенный выше список классов типов).

Есть ли способ заставить его получить все зависимости Integral вместе с этим?Я бы представил себе что-то вроде:

newtype PersonIdx = PersonIdx Int
  deriving (Integral(..))
Это было полезно?

Решение

Нет, короткого пути нет.Вам придется явно получить производные от всех зависимых классов типов, но их можно легко найти, набрав :i Integral в гхи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top