[EMAIL PROTECTED] (Harvey J. Stein) writes: > If so, it would be nice to be able to tell the compiler that a > particular function can be redefined, but it's always going to return > a double-float,
This is exactly what a *global* declaration, e.g. (DECLAIM (FTYPE ...)), is for. But, > so don't bother boxing and unboxing the result. The problem is not with the redefinition. There is no mutual knowledge of the call/return protocol between callers and a callee. The function with the declared type may be called without the caller seeing the declaration: e.g. by (FUNCALL (READ) ...) and typing function name. One solution to it is to have several entry points (CMUCL does it for local functions and for global in block compilation), but this can forbid redefiniton, because the new definition might not know the old protocol. -- Regards, Alexey Dejneka "Alas, the spheres of truth are less transparent than those of illusion." -- L.E.J. Brouwer
