Pergunta

Eu tenho jogado com os envolvedos newtype para meus índices evitar bugs, e tenho algum código como este:

{-# LANGUAGE GeneralizedNewtypeDeriving #-}

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

Derivar Integral, é preciso derivar também todas as suas dependências (daí a lista acima de classes de tipo).

Existe uma maneira de fazer com que todas as dependências de Integral junto com isso? Eu imaginaria algo como:

newtype PersonIdx = PersonIdx Int
  deriving (Integral(..))
Foi útil?

Solução

Não, não há atalho. Você terá que derivar de todos os tipos de dependentes explicitamente, mas pode encontrá -los facilmente digitando :i Integral em ghci.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top