| CODE THAT PRODUCES THE ERROR
| 
| module Foo where
| 
| import MutableArray
| import ByteArray
| import ST
| import PrelArrExtra
| 
| class Foo t where
| 
|      foo :: t -> ByteArray ix
| 
| instance Ix ix => Foo (forall s. MutableByteArray s ix) where
| 
|          foo x = runST(unsafeFreezeByteArray x)

No, it's not legal to have a for-all type in the argument of a type
constructor like that!  

        Foo (forall s.  stuff)          is Not Kosher

But it's a compiler bug that it's not caught more gracefully.
-fglasgow-exts is too liberal!  Thanks for reporting it.

Simon


Reply via email to