Si a foo le asignás el tipo Either a I -> P, luego la llamada a foo que hacés en la recursión tiene un tipo distinto, que es Either P I -> P.
En este caso estarías haciendo uso de "recursión polimórfica", que es un concepto que no vimos en el curso y requiere de que se anoten los tipos, porque la inferencia de ese tipo es indecidible.
saludos
En este caso estarías haciendo uso de "recursión polimórfica", que es un concepto que no vimos en el curso y requiere de que se anoten los tipos, porque la inferencia de ese tipo es indecidible.
saludos