Sé las diferencias entre data
, newtype
y type
muy bien. Estoy escribiendo un pequeño script que construirá algún tipo de árbol de sintaxis. Casi todos los tipos tienen un constructor. Estoy evitando type
para forzar la seguridad (múltiples tipos "diferentes" pueden terminar teniendo el mismo tipo en Haskell). No me importa la pereza/rigor en este caso, ni me importa el rendimiento (esta parte de ninguna manera es crítica para el rendimiento). Estoy centrado principalmente en el estilo. Tengo tres opciones:Otro nuevo tipo contra los datos (cuestión de estilo)
- Utilice solo
data
. Esto se siente bien, excepto que tengo muchos tipos con un solo constructor con un argumento. El código parece un tanto derrochador ... Aunque no me importa la ganancia de rendimiento, pero simplemente no me siento bien. - Use solo
newtype
. Esto conduce a mucha fealdad con tuplas en el caso de múltiples parámetros. - Mezcle
data
ynewtype
que de alguna manera se ven no uniformes y ligeramente molestos ... Prefiero tener todos los tipos declarados de una sola manera consistente.
estoy en un dilema de escoger entre 1 y 3.