Anomalous Class Fundep Inference

Jon Fairbairn Jon.Fairbairn@cl.cam.ac.uk
Sat, 05 May 2001 11:21:10 +0100


Ashley Yakeley <ashley@semantic.org> wrote
> OK, I understand it a bit better now. This code does not compile:
> --
> class X a
> instance X Bool
> instance (Num a) =3D> X a
> --
> Can someone explain why the two instances overlap, given that Bool is n=
ot =

> an instance of Num?
> =

> Would it be possible for Haskell to figure out this sort of thing and n=
ot =

> complain about it, or would that lead to nasty problems?

Think what would happen if someone had a module that did define
Bool as an instance of Num and imported the class X.

-- =

J=F3n Fairbairn                                 Jon.Fairbairn@cl.cam.ac.u=
k
31 Chalmers Road                                         jf@cl.cam.ac.uk
Cambridge CB1 3SZ            +44 1223 570179 (after 14:00 only, please!)