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

Re: Common Lisp solved this problem 20 years ago



Per Bothner <per@xxxxxxxxxxx> 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?