On Fri, Mar 14, 2008 at 2:50 PM, Andrew Coppin <[EMAIL PROTECTED]> wrote: > Haskell has an expressive and powerful type system - which I love. It > also has a seemingly endless list of weird and obscure type system > extensions. And there are various things you can do in Haskell which > *require* some pretty serious type system hackery.
Well, there wouldn't be much point to a type system extension if you could do just as well without it. > And yet they commonly pop up in Haskell. Can anybody put their finger on > precisely why that is? It's because Haskell is, among other things, a research language. Part of its stated purpose is providing a basis for experimenting with type systems and implementation strategies and so forth. When Haskell 98 was written, higher-ranked polymorphism wasn't considered practical, and no one had invented multi-parameter type classes yet. Even type classes started out as an experiment, and then they were extended to constructor classes (e.g., classes like Monad where the parameter is a type constructor, not a ground type). Eventually, the most successful extensions will be rolled into the next Haskell standard. The same thing happens in Java. Generics (what we call type constructors) were available in various extended Javas before being added to the main standard. The Haskell process is just a lot slower because we're doing things very few have done before. -- Dave Menendez <[EMAIL PROTECTED]> <http://www.eyrie.org/~zednenem/> _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
