Ejercicio de repaso - Tipos algebraicos

Ejercicio de repaso - Tipos algebraicos

de Agustina Arismendi Campo -
Número de respuestas: 1

Dada la siguiente definicion:

data A = A [A] | V Int | U A
copia :: A -> (A, Int)
copia (U a)  = let (a', n) = copia a
              in (U a', n)
copia (V i)  = (V i, 1)
copia (A as) = let ps     = map copia as
                  (a, n) = head ps
                  ts     = tail ps
              in (A (a : map fst ts), sum (map snd ps))

No entendemos que de donde sale la para la definicion de Copia (u a).

Agradecemos la aclaración.

Saludos.