> unification > f :: a = h = (e -> d -> c) > x b = d > > No. x :: b = d (a typo?) > Paul: What's wrong with x being of type b and of type d? > Could you perhaps explain the error please? >
Nothing's wrong, you just forgot a ::, that is, you wrote x b = d instead of x :: b = d. > > > Don't forget also that > > funk :: a -> b -> c = h -> e, > > which means that e = b -> c > Paul: is that something to do with partial application? > (funk f) is a partially applied function, correct? Again an explanation > would be appreciated. > It's because function arrows associate to the right, so a -> b -> c is really shorthand for (a -> (b -> c)). If (a -> (b -> c)) = h -> e, then a = h and (b -> c) = e. -Brent
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
