On 26-4-2010 20:13, Jochem Berndsen wrote:
Thomas van Noort wrote:
...
f requires a function that is able to compute, for two values of type a
(which instantiates Eq), a Boolean.
y certainly fulfills that requirement: it does not even require that the
values are of a type instantiating Eq.
This is also well-typed and might or might not be enlightening:
z :: forall a. Eq a => a -> a -> Bool
z = y
g :: (Bool, Bool)
g = (f x, f z) -- note the use of z here instead of y
I find your example of z more intuitive as it is z that does not provide
its dictionary to y, but throws it away explicitly. This in contrast to
y that is provided a dictionary but throws it away implicitly.
Regards,
Thomas
Jochem
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe