Bulat Ziganshin wrote:
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:
[example snipped]

Hello Bulat,

Thanks for the workaround, which solves the need to copy and paste method bodies though not the problem of having to write out instance decls for a potentially large chain of classes leading to the subclass of interest. Part of the motivation for proposing that a superclass method default could be redefined in a subclass (or a particular instance) is that it would allow some refactorings of the class hierarchy without affecting code that just uses the subclass - in particular it would allow existing code using Monad to compile unchanged even when Monad moved down to Functor => Applicative => Monad because return and >>= are enough to get completely defined instances for Functor and Applicative.

Best regards, Brian.
--
http://www.metamilk.com
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to