Path: utzoo!utgpu!water!watmath!clyde!rutgers!sunybcs!boulder!hao!noao!arizona!gudeman
From: gudeman@arizona.edu (David Gudeman)
Newsgroups: comp.lang.lisp
Subject: Re: Correctness (was Re: Common Lisp lacks portability)
Message-ID: <3247@megaron.arizona.edu>
Date: 17 Dec 87 22:51:25 GMT
Organization: U of Arizona CS Dept, Tucson
Lines: 18

In article  <1547@orstcs.CS.ORST.EDU> ruffwork@orstcs.CS.ORST.EDU (Ritchey Ruff) writes:
>I think I see the basic point of dissent in this discussion...
>
>The main difference in opinion seems to be what we "feel" the definition
>of "A CORRECT PROGRAM" is, right?

No, I don't think you get it.  You are trying to use type declarations
to make the run-time system verify the types of variables.  You are
using them incorrectly.  Type declarations in Common Lisp have no
purpose other than to give the compiler information that helps it
produce efficient code.  That's why the compiler is free to ignore the
declarations.

Some implementations may use the declarations to help the programmer
find bugs, but this is not part of the language.  So if you depend on
type declarations to check the types of your variables at run time,
you are using a non-standard, non-portable feature of a specific
implementation.