PFH: Tipos de datos algebraicos en Haskell

He añadido a la colección de Ejercicios de programación funcional con Haskell la relación Tipos de datos algebraicos en Haskell en la que se estudian los tipos abstractos de datos (TAD) tantos los predefinidos (como booleanos, opcionales, pares y listas) como definidos (árboles binarios). Se definen funciones sobre los TAD y se verifican propiedades con QuickCheck (en el caso de los TAD se definen sus generadores de elementos arbitrarios).

El contenido de la relación es el siguiente