Hello Ashley, Wednesday, December 28, 2005, 1:56:51 AM, you wrote:
i tried to implement your solution and failed. i will extend my original example to show you my problem: >> class BufStream h where vPutBuf :: h -> Ptr a -> Int -> IO () >> class CharStream h where vPutStr :: h -> String -> IO () >> instance (CharStream h) => BufStream h where vPutBuf h buf len = do str <- peekCStringLen (castPtr buf, len) vPutStr h str >> class MemoryStream h where >> instance (MemoryStream h) => BufStream h where AY> Try this: class BufStream h where vPutBuf :: h -> Ptr a -> Int -> IO () class (BufStream h) => CharStream h where vPutStr :: h -> String -> IO () now i can give default implemetation of `vPutStr` via `vPutBuf`. but i need to implement `vPutBuf` via `vPutStr`! AY> class (BufStream h) => MemoryStream h where the same problem here - i need to implement `vPutBuf` via functions of MemoryStream, but it's impossible -- Best regards, Bulat mailto:[EMAIL PROTECTED] _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users