Я играл с обертками нового типа для своих индексов, чтобы избежать ошибок, и у меня есть такой код:
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
newtype PersonIdx = PersonIdx Int
deriving (Enum, Eq, Integral, Num, Ord, Real, Show)
Чтобы получить Integral
, нужно также вывести все его зависимости (отсюда и приведенный выше список классов типов).
Есть ли способ заставить его получить все зависимости Integral
вместе с ним? Я хотел бы представить что-то вроде:
newtype PersonIdx = PersonIdx Int
deriving (Integral(..))