Re: Common Lisp solved this problem 20 years ago
Thomas Bushnell BSG 26 Oct 2005 21:53 UTC
Per Bothner <xxxxxx@bothner.com> writes:
> Taylor Campbell wrote:
>> I'm a bit unclear on one part of your proposal: is the type
>> declaration syntax merely a suggestion to the compiler, or does it
>> actually affect the semantics of a program?
>
> The latter, but perhaps not quite the way you're thinking.
> (let ((V :: TYPE init)) ...)
> has semantics like:
> (let ((V (coerce-to-TYPE init))) ...)
I dislike this, because it's a hidden semantic in the type
declaration.
Why not declare that (let ((V :: TYPE init)) ...) is an error if the
init doesn't return something of the proper type?