"Neil Mitchell" <ndmitchell@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@cl.cam.ac.uk