
| > The solution is to add (EuclideanRing k) to the type sig of cubicExt. | > Then it compiles all the way up to the top. | | But the DoCon declares | class (EuclideanRing a, FactorizationRing a) => Field a | | (EuclideanRing is a superclass for Field), | and the test declares | cubicExt :: (Field k, FactorizationRing (UPol k)) => | k -> k -> Domains1 k -> (Domains1 (E k), [E k], k -> E k) | | So, why the compiler does not `extract' EuclideanRing k from Field k I made a mistake. I should have said "add (EuclideanRing (Pol k)) to the type sig of cubicExt". GHC can't extract EuclideanRing (Pol k) from Field k except by using one of the two (overlapping) instances. I don't know why 7.4 accepts it, but I'm not inclined to investigate... looks like a bug in 7.4. Simon