> The following works fine with GHC 3.00:
> 
>       class Variable v where
>               updVar          :: v a -> (a -> IO (a,b)) -> IO b
> 
>       applyVar :: Variable v => v a -> (a -> a) -> IO a
>       applyVar v f = updVar' v (\x -> let x' = f x in (x',x')) 
> 
> By changing the definition of applyVar to
> 
>       applyVar :: Variable v a => v a -> (a -> a) -> IO a
>       applyVar v f = updVar' v (\x -> let x' = f x in (x',x'))
> 
> where it appears as if the class Variable takes two type parameters, then
> GHC 3.00 panics with:
> 
>       panic! (the `impossible' happened):
>               unifyKinds: length mis-match


Great bug report; easily fixed.  Thanks.  The fix will be in the
next (source) release.

S

Reply via email to