Buenas,
Tengo un problema bastante raro al hacer la eta reduccion ya que cuando pruebo el caso07 de prueba pasa lo siguiente:
Si pongo ./Linter -s ejemplos/caso07.mhs las sugerencias que devuelve en la funcion qux (aclaro que las otras funciones del mismo caso de prueba me dan bien) (la entrada de la funcion qux es la siguiente qux = \xs -> (\ys -> case ys of [] -> 0; (x : xs) -> 1 + xs) xs) :
Función: qux
**Sugerencia para:
\xs -> (\ys -> case ys of
[] -> 0;
(x : xs) -> 0) xs
Usar eta-reducción. Reemplazar por:
\ys -> case ys of
[] -> 0;
(x : xs) -> 0
lo cual es bastante raro ya que por alguna razón se cambia 1+xs por 0 sin ninguna sugerencia.
Ahora cuando lo hago con la bandera -lintEta no me tira ninguna sugerencia.
Como leí del foro hoy que en el caso 7 era equivalente a:
\xs -> (\ys -> case ys of
[] -> 0;
(x : zs) -> 1 + zs) xs
entonces lo que hice fue sustituir la entrada del caso de prueba por eso cambiando el xs del case por zs y funcionó correctamente, incluso con la bandera de -lintEta y sin ella (de hecho en el caso 12 en la función incr se me corrigen los errores de la eta reducción si cambio esos xs del caso por zs).
Quería saber si me pueden dar algún indicio de donde puede estar el error(sabiendo que es complicado sin ver el código) pero estuve todo el día tratando de solucionarlo y no logre hacerlo, incluso me fije a ver si las funciones de combinaciones de lintings podían llegar a estar mal pero la verdad es que no les encontré ningún error.