Quiero definir un tipo de "Ideal" que es una lista pero con cierta estructura. El preludio numérico ya define instancias de Ring
para las listas, pero no están usando las definiciones de suma y multiplicación que quiero. Así que creo que en este caso debería decirHaskell newtype, pero conserva las funciones anteriores
newtype Ideal a = Ideal [a]
Esto funciona bien, pero ahora me da un error si trato de hacer, decir take 5 $ Ideal [0..]
.
¿Hay alguna manera de que pueda mantener las funciones que quiero y solo anular las definiciones que anulo explícitamente?