[clean-list] (+) is a binary function

Thomas van Noort thomas at cs.ru.nl
Sun Aug 24 14:08:32 MEST 2008


Hi,

The signature from the Clean Book is correct, + is not only a binary
function but also a type class taking one type argument (as defined on
page 16):

class (+) infixl 6 a :: a a -> a

The confusion might originate from the fact that this definition is
shorthand notation for:

class + a where
   (+) infixl 6 :: a a -> a

This definition clarifies the fact that + is a binary function taking two
arguments and a type class as well taking a single type argument.

The shorthand notation is probably introduced for type classes that only
define a single function with the same name as the type class.

Regards,
Thomas

terrence.x.brannon at jpmchase.com wrote:
> 
> This seems like an obvious statement, but I am reading the Clean Book 
> and saw this annotation for double:
> 
>     double :: a -> a | + a
> 
> which reads as "double is a function which takes an argument of type a 
> and returns and value of type a provided that a version of + is defined 
> which can handle arguments of type a"
> 
> But my question is: since (+) is a binary function, shouldnt that read:
> 
>    double :: a -> a | + a a
> 
> 
> --
> Terrence Brannon - SID W049945
> 1111 Polaris Pkwy, OH1-1141, Columbus, OH 43240
> 818-359-0893 (cell)
> 614-213-3426 (fax)
> 
> 
> 
> ------------------------------------------------------------------------
> 
> This communication is for informational purposes only. It is not 
> intended as an offer or solicitation for the purchase or sale of any 
> financial instrument or as an official confirmation of any transaction. 
> All market prices, data and other information are not warranted as to 
> completeness or accuracy and are subject to change without notice. Any 
> comments or statements made herein do not necessarily reflect those of 
> JPMorgan Chase & Co., its subsidiaries and affiliates. This transmission 
> may contain information that is privileged, confidential, legally 
> privileged, and/or exempt from disclosure under applicable law. If you 
> are not the intended recipient, you are hereby notified that any 
> disclosure, copying, distribution, or use of the information contained 
> herein (including any reliance thereon) is STRICTLY PROHIBITED. Although 
> this transmission and any attachments are believed to be free of any 
> virus or other defect that might affect any computer system into which 
> it is received and opened, it is the responsibility of the recipient to 
> ensure that it is virus free and no responsibility is accepted by 
> JPMorgan Chase & Co., its subsidiaries and affiliates, as applicable, 
> for any loss or damage arising in any way from its use. If you received 
> this transmission in error, please immediately contact the sender and 
> destroy the material in its entirety, whether in electronic or hard copy 
> format. Thank you. Please refer to 
> http://www.jpmorgan.com/pages/disclosures for disclosures relating to UK 
> legal entities.
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> clean-list mailing list
> clean-list at science.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/clean-list



More information about the clean-list mailing list