Re: Common Lisp solved this problem 20 years ago Per Bothner 27 Oct 2005 00:20 UTC
Thomas Bushnell BSG wrote: > I thought the primary semantic of a type declaration was that it told > the compiler what type the variable would be used to hold. Now you > also are using it for something other than a declaration, viz., a > particular operation. > > Among other things, it slows things down because you have to test the > result of the init to see whether coercion is necessary. Not necessarily. Sometimes the compiler can infer that the coercion is a no-op or trivial. And sometimes people can compile in "unsafe" mode, just as with the Common Lisp model. > More to the point, I object to the use of a type declaration which > also signifies an operation. Among other things, you lose one of the > timing benefits of the type declaration. Why not separate these two? > > Maybe you're using "declaration" to mean something wildly different > from the Lisp meaning. It is somewhat different, yes. I'm not proposing "type declarations" in the Common Lisp sense. I use the word "declaration" in the more usual "variable declaration" sense. I'm adding optional "type specifiers" to "variable declarations". -- --Per Bothner xxxxxx@bothner.com http://per.bothner.com/