Hello
another Hugs error. seem that this `instance BlockStream IO h` forces
Higs to think that all BlockStream instances will belong to an IO
monad. as in the previous case, all works fine with GHC
{-# OPTIONS_GHC -fglasgow-exts -fallow-undecidable-instances #-}
class (Monad m) => Stream m h | h -> m where
class (Stream m h) => CharStream m h where
class (Stream m h) => BlockStream m h where
vPutBuf :: h -> m ()
instance (CharStream IO h) => BlockStream IO h where
vPutBuf h = return ()
test :: (BlockStream m h) => h -> m ()
test file = vPutBuf file
ERROR file:.\a.hs:11 - Inferred type is not general enough
*** Expression : test
*** Expected type : BlockStream a b => b -> a ()
*** Inferred type : BlockStream IO a => a -> IO ()
--
Best regards,
Bulat mailto:[EMAIL PROTECTED]
_______________________________________________
Hugs-Users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/hugs-users