[Haskell-cafe] Haskell.org GSoC

Wolfgang Jeltsch g9ks157k at acme.softbase.org
Tue Feb 17 07:05:54 EST 2009


Am Dienstag, 17. Februar 2009 01:13 schrieb Martijn van Steenbergen:
> Daniel Kraft wrote:
> > Do you think something would be especially nice to have and is currently
> > missing? 
>
> Have type class aliases been implemented yet? This proposal (or parts or
> it) seems like a very useful compiler extension to have, and might be an
> interesting GSoC project.
>
> http://repetae.net/recent/out/classalias.html
>
> Kind regards,
>
> Martijn.

It would be great to have something like class aliases implemented.

However, the proposal(s) should be reviewed and discussed before someone 
starts implementing them. Once something is implemented, it is difficult to 
change it.

It’s similar to libraries. Several libraries were implemented as part of 
research and their developers didn’t seem to think very deeply about choosing 
identifiers and such things. Later, these libraries were in wider use and 
changing the identifiers got problematic. I think of such things like the DPH 
identifiers. In my opinion, it’s bad practice to include single letters in 
identifiers to denote namespace. Parallel.filter would be much better than 
filterP.

That said, I want to reinforce that class aliases are far too long not 
implemented. My dream is that we thoroughly improve library interfaces and 
class aliases could be important for doing so without breaking compatibility 
very much. So we should probably also think about what kinds of library 
interface changes would be desirable in order to know what features some 
class alias extension should provide. Some things that come to my mind 
immediately:

    * making Applicative a superclass of Monad

    * getting rid of MonadPlus (use (Alternative m, Monad m) instead of
    (MonadPlus m) or, with another extension, even something like
    (forall a. Monoid (m a), Monad m))

    * getting rid of ugly Monoid method names (empty, append, concat or
    something totally different instead of mempty, mappend, mconcat)

    * redesigning numeric classes

Best wishes,
Wolfgang


More information about the Haskell-Cafe mailing list