DoCon and GHC
simonpj at microsoft.com
Wed Jan 2 21:23:37 CET 2013
| > 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.
More information about the Glasgow-haskell-users