On Sunday 18 September 2005 07:59 am, Tom Hawkins wrote: > Aaron Denney wrote: > > On 2005-09-17, Jason Dagit <[EMAIL PROTECTED]> wrote: > >>A link to supertyping can be found here: > >>http://repetae.net/john/recent/out/supertyping.html > >> > >>After reading that, I wonder why it's not implemented. > > > > Not enough people calling for it. > > > >>It seems like a wonderfully useful idea. > > > > It is. It would be terribly useful for those trying to prototype a > > new Prelude, and clean up the mathematical structures. > > I like the idea of supertyping, but wouldn't that only allow you to > alter identifiers that were already classified? What about functions in > the Prelude that don't belong to a type class? > > For instance, I have a datatype that needs an append-like operation, yet > it appears (++) is reserved only for lists. > > I recently switched to Haskell from OCaml because I thought type classes > may solve one of my problems. I'm building an embedded language, which > has a lot of the basic operations. In OCaml I was forced to invent all > sort of obscure operator names for the embedded language so as not to > collide with the standard library. > > But with Haskell's Num class, I have been able to reuse (+), (-), and > (*). However, (==) and (++) are still sticking points. My general > impression of Haskell is good, though it seems you're somewhat locked-in > by how the upper levels of the class hierarchy are defined in the > Prelude, or when the Prelude does not type class generic operator names > such as (++). > > Again, I just stared programming Haskell. Please let me know if I'm > missing something.
One possible solution for DSLs is to import the Prelude qualified, or with a hiding clause. That allows you to redefine most of the symbols in the Prelude, but still use the Prelude ones if needed. (==) is still a little special because the Prelude (==) is used for some desugaring steps. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe