[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


> Several voices in the scheme-standard list have begun to urge that
> the IEEE standard require #f and the empty list to be distinct.
> It is becoming clear that we will never again have the opportunity
> to make this change as painlessly as we can today.

This started with a proposal to add null? to the list of predicates
that specify disjoint types with an exception saying that () and #f
were allowed to be the same.  A number of people took this as an
opportunity to say we should "go all the way" and require that ()
and #f be distinct.  A couple of people (chiefly jinx) have objected.

It seems to me that we have had years in which to specify that () and
#f are distinct and haven't done so.  There's been over a year in which
we could have had this discussion about the Scheme standard.  I think
it's a bit unfair to bring it up again at the last minute and say,
in effect, "this is your last chance to Do It Right -- and you have to
do it NOW".

If objections to this proposal remain, I think it would be better to
follow normal procedures, delay the standard, and give everyone a
chance to come to a decision by consensus, which is the traditional
requirement for changing the Revised Report.

On the whole, I think it's more Scheme-like to make them distinct, but
I've often thought that this was basically an ideological/religious
dispute.  Some people feel that null and false are distinct types and
that there's something wrong with having an object that belongs to
both, and other people don't, or else feel there's another, equally
valid, way to think of it.  Many of the advocates of making #f and ()
distinct cite pragmatic reasons: subtle bugs occur or students will be
confused if () and #f can be the same.  However, those on the other
side evidently don't agree.  Thay don't say "you're right: there will
be lots of subtle bugs; but it's worth it".

Since I would find the pragmatic arguments more convincing, I would
like to see us at least reach agreement on whether or not _they_ are

-- Jeff