[Haskell-cafe] Redefining superclass default methods in a subclass

Bulat Ziganshin bulat.ziganshin at gmail.com
Fri Jan 5 08:18:48 EST 2007


Hello Brian,

Thursday, January 4, 2007, 10:00:05 PM, you wrote:

> deeper, the programmer is burdened more and more by the need to
> cut-and-paste method definitions between instances because Haskell doesn't 
> allow a superclass (or ancestor class) method default to be redefined in a 
> subclass.

i've runned into this problem with Streams library. finally i've decided to
wrote bodies of such methods outside of class:

getLineBody :: (CharStream h) =>  h -> IO String
getLineBody h = do
   c <- getChar
   ....

instance LineStream File where
  getLine = getLineBody

instance LineStream MemBuf where
  getLine = getLineBody


where File and MemBuf, of course, are CharStream instances


-- 
Best regards,
 Bulat                            mailto:Bulat.Ziganshin at gmail.com



More information about the Haskell-Cafe mailing list