bug in 6.8.2?
Bulat Ziganshin
bulat.ziganshin at gmail.com
Sun May 18 11:33:02 EDT 2008
Hello glasgow-haskell-users,
i've rather complicated class structure:
class BufferData a where
instance (FastBufferData a) => BufferData a where
class FastBufferData a where
instance (Storable a) => FastBufferData a where
of course, it's compiled with -fallow-undecidable-instances
-fallow-overlapping-instances -fallow-incoherent-instances
BufferData class includes procedure `write`:
class BufferData a where
write :: OutStream -> a -> IO ()
there is writeAll procedure which uses this `write` and therefore
should be able to write any BufferData instance:
writeAll receiveBuf sendBuf cleanup x =
bracket (create receiveBuf sendBuf cleanup) (closeOut)
(\buf -> write buf x)
it works great in 6.6.1 but in 6.8.2 GHC infers that writeAll can
write only Storable instances, so i was forced to add signature to
writeAll:
writeAll :: (BufferData a) => RecvBuf -> SendBuf -> Cleanup -> a -> IO ()
the same problems raised many times when i switched from 6.6.1 to
6.8.2 - lots of procedures need to add signatures because by default
6.8.2 decided that they are restricted to Storable
does GHC developers interested in minimal test case for this problem?
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Glasgow-haskell-users
mailing list