On Wed, 23 Apr 2008 22:52:18 +0200, Niklas Broberg wrote: >> An interesting question. What is the goal of Haskell'? Is it to, like >> Python 3000, fix warts in the language in an (somewhat) incompatible >> way or is it to just standardize current practice? I think we need >> both, I just don't know which of the two Haskell' is. > > I would hope it is both. Some changes simply cannot become current > practice since they would not be compatible with existing code, and the > only place that such changes *could* be made is in a new language > version. Like you say, fail in the Monad class is one such issue that > would not be backwards compatible, and couldn't become a current > practice without some help. Chicken or egg first?
I don't think I agree that fail in the Monad typeclass is a good example here, or necessarily that there is a good example. We should remember that there is a cohesive community of Haskell programmers; not a bunch of unrelated individuals who never talk to each other. It's entirely possible to spend some time recommending against using fail (as many people have been doing), and then eventually remove it. It doesn't need to break very much. This is working in our favor, so we may as well use it. IMO, this argues strongly in favor of making any backward compatible changes incrementally, instead of adopting a "Python 3000" model of postponing them and then breaking everything at once. (This is ignoring technical issues in this particular example; like what happens when a pattern match fails if there is no fail in Monad. It's entirely possible that discouraging use is the right answer in this case, and that removal need not happen. That's beside the point.) -- Chris _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime