Pregunta

He estado jugando con envolturas de Newtype para mis índices para evitar errores, y tengo algo de código como el siguiente:

{-# LANGUAGE GeneralizedNewtypeDeriving #-}

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

Para derivar Integral, uno debe derivar todas sus dependencias, así (por lo tanto, la lista anterior de tipo-clases).

¿Hay una manera de hacer que se derivan todas las dependencias de Integral junto con él? Me imagino algo como:

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

Solución

No, no hay ningún atajo. Vas a tener que derivar de todas las clases de tipos que dependen explícitamente, pero se puede encontrar fácilmente estos escribiendo :i Integral en ghci.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top