At 12:42 AM +0400 2/19/07, David Tolpin wrote:
On Mon, 19 Feb 2007 00:30:47 +0400, Sebastian Sylvan <[EMAIL PROTECTED]> wrote:
 Well, I guess the H98 report would be a good start. But there are
 multiple tutorials on type classes that will cover this, most of which
 are available from haskell.org

Sebastian,

I did read H98 and would like an exact reference.

See section 4.3.2, the third bullet item in the bulleted list. (Note that the last sentence of that bullet item says that context inference--though often possible--is deliberately eschewed.)



 The key point is that Haskell won't guess, and in particular it won't
 contradict what you tell it. I think that's the major flaw in your
 reasoning, you expect Haskell to take an explicit type that you, the
 programmer, supplies, and change it into something else.

Why is this rule applied differently to type declarations and to instances?


 In the original example you are explicitly telling Haskell that "m" is
 *not* in the Monad (or any other) class.

I am not telling that. I am telling that m is an instance of a class all instances of which are in the Monad class. How is this different from specifying class constraint in type declarations?

David
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to