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?