fundeps for extended Monad definition

Simon Peyton-Jones simonpj@microsoft.com
Mon, 3 Mar 2003 08:53:27 -0000


| > The reason, which is thoroughly explained in Simon Peyton-Jones'
| > message, is that the given type signature is wrong: it should read
| > 	f1 :: (exists b. (C Int b) =3D> Int -> b)
|=20
| Right.  Simon pointed out that this is a pretty useless function, but
not
| entirely so, since the result of it is not of type 'forall b. b', but
| rather of 'forall b. C Int b =3D> b'.  Thus, if the C class has a
function
| which takes a 'b' as an argument, then this value does have use.

I disagree.   Can you give an example of its use?  =20

Simon