[Haskell] Re: Proposal: unification of style of function/data/type/class definitions

Jón Fairbairn jon.fairbairn at cl.cam.ac.uk
Sun Sep 10 06:43:30 EDT 2006


"Neil Mitchell" <ndmitchell at gmail.com> writes:

> Hi,
> 
> > class Monad m | Functor m, Monoid m where ...
> 
> Nice - I was having exactly this problem in Hoogle, if you list all
> the class dependancies first, you can't really see the actual class.
> It also makes grep'ing easier.
> 
> > data EncodedStream m h | Monad m, Stream m h = ...
> 
> Ditto
> 
> > sequence :: [m a] -> m [a] | Monad m
> 
> I don't like this. In the other two instances you are moving the most
> important information (the name of the thing) to the front. In this
> the name is at the front, but the instances move to the end, which
> isn't really where they should be.

I don't see the problem. You can read all of Bulat's
examples as "'thing being declared' 'relationship' 'value'
given that 'context'", so this one is "“sequence” has type
“[m a] -> m [a]” given that “m” is a “Monad”". So viewed
that way, they're all consistent with each other.

[Hmm. I think I need to restrain myself a bit on the
use of different types of quotation mark :-)]

Isn't the etiquette to discuss postings here in the café?


-- 
Jón Fairbairn                                 Jon.Fairbairn at cl.cam.ac.uk



More information about the Haskell mailing list