Hola. Te recomiendo que hagas lo siguiente: aplicá cucu a tres argumentos simbólicos a, b, c y reducí la expresión (cucu a b c).
Acordate de que la aplicación asocia a la izquierda, y de las definiciones de las funciones que se usan ((f . g) x = f (g x); curry f a b = f(a,b)).
Entonces (hago los primeros pasos, dejo para que lo sigas):
cucu a b c ---->
(curry . curry) ((++ "--") . snd .fst) a b c ---->
curry (curry ((++ "--") . snd .fst)) a b c ----> {notar que como la aplicación asocia a la izquierda, el argumento de (curry . curry) que voy a usar para reducir según su definición, es ((++ "--") . snd .fst)}
(curry ((++ "--") . snd .fst)) (a,b) c -----> {de nuevo, notar que los argumentos del primer curry para hacer la reescritura según la definición, van hasta el b}
....