Buenas, no termino de entender la definición de la función que se pide en la letra
mapHT :: (a → b) → (HTree a → HTree b)
No debería ser algo de la forma mapHT :: (a → b) → HTree a → HTree b ? Ya que de la forma que se plantea es como que mapHT devuelve una función de HTree en HTree y no un HTree que es la idea del map.
Gracias, saludos