DoCon and GHC

Simon Peyton-Jones 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.

Simon



More information about the Glasgow-haskell-users mailing list