Получение типа и его зависимостей
-
21-09-2019 - |
Вопрос
Я экспериментировал с обертками 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
в гхи.
Не связан с StackOverflow