
On Fri, 11 Jan 2008 09:11:52 +0200, Lennart Augustsson
Some people seem to think that == is an equality predicate. This is a big source of confusion for them; until they realize that == is just another function returning Bool they will make claims like [1..]==[1..] having an unnatural result. The == function is only vaguely related to the equality predicate in that it is meant to be a computable approximation of semantic equality (but since it's overloaded it can be anything, of course).
Imagine one can manage to define a function which stops when applied on any value of type T1, but not when applied on some values of type T2 including bottom. Because bottom is a member of any type and referential transparency must not be broken, such a function cannot be defined. ________ Information from NOD32 ________ This message was checked by NOD32 Antivirus System for Linux Mail Servers. part000.txt - is OK http://www.eset.com