Thomas Chust scripsit: > this is really a question of taste, isn't it? You could just as well argue > that a NULL value should be of a type that is a subtype of every other > existing type but contains no other concrete instances, which would imply > that all the type predicates should return #t when applied to the NULL > value. This makes a lot of sense when the NULL value is used to indicate > the absence of an object reference and is the way it is handled in several > object oriented languages.
As far as I know, no OO language does that. They interpret (or IMHO misinterpret) a *static* declaration that a variable is of type Foo as meaning that it can contain a Foo or null, but nowhere is null *dynamically* a member of type Foo: tests analogous to number?, string?, etc. always return false on null. Haskell spells it out: a foo-typed variable can only hold a foo, and if you want it to be otherwise, you declare it as of type Maybe foo, which means it can hold either a Just foo (which you can unwrap to be a foo) or Nothing. OT: One of the Java puzzlers is this: Foo foo = null; foo.bar(); Under what circumstances does that *not* cause a NullPointerException? -- We are lost, lost. No name, no business, no Precious, nothing. Only empty. Only hungry: yes, we are hungry. A few little fishes, nassty bony little fishes, for a poor creature, and they say death. So wise they are; so just, so very just. --Gollum [EMAIL PROTECTED] http://ccil.org/~cowan _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users