Hello all

why the folowing is not allowed even with all extensions enabled both
in Hugs and GHC?

class BufStream h where

class CharStream h where
instance (CharStream h) => BufStream h where

class MemoryStream h where
instance (MemoryStream h) => BufStream h where


i plan to implement many streams, some of which are supporting
getBuf/putBuf interface of MemoryStream, and some getChar/putChar
interface of CharStream and then automatically derive BufStream using
the appropriate operations. but that just fail

how can i pass around these restriction?
can this be supported in future Hugs/GHC versions?



... just now i encountered this problem again:

-- Copy entire contents of Stream to another Stream
class (Stream h1, Stream h2) => StreamCopying h1 h2 where
    copyStream :: h1 -> h2 -> IO ()

instance (MemoryStream h1, BufStream h2) => StreamCopying h1 h2 where
    copyStream h1 h2 = return ()

instance (BufStream h1, MemoryStream h2) => StreamCopying h1 h2 where
    copyStream h1 h2 = return ()

-- 
Best regards,
 Bulat                          mailto:[EMAIL PROTECTED]



_______________________________________________
Hugs-Users mailing list
Hugs-Users@haskell.org
http://www.haskell.org/mailman/listinfo/hugs-users

Reply via email to