Dear Andrea

The point is NOT to diverge from Common Lisp.  Such divergence is - IMHO - unwarranted.  Plus, the proposal for the ftype declaration also carries over to type declarations, which, again, are useful per se, even if the compiler is "smart enough" (ok; this one is for old-timers :) )

Having said that, a provision can be made that a nameless ftype declaration at a function top level refers to the "definenda" function.  Again, having to use ftype instead of type is a consequence of ELisp being a 2-lisp.

Cheers

MA

On Fri, May 10, 2024 at 8:47 AM Andrea Corallo <acorallo@gnu.org> wrote:
Marco Antoniotti <marco.antoniotti@unimib.it> writes:

> Ciao Andrea
>
> The presentation I attended gave me the idea of "ranting talks" at the next ELS :)
>
> Having said so, I now think that, to save goat and cabbage, what you want is
>
> (defun foo (x y)
>    (declare (ftype (function (integer number) number) foo))
>    (+ x y))
>
> Common lispers can live with that.
>
> All the best
>
> MA

Ciao Mario,

not sure what maintainers think about it, I'm not in love with this
solution because one has to repeat 'foo' two times and we don't support
anyway unsing declare inside a function to declare another one.

Mmmhh

   Andrea


--
Marco Antoniotti, Professor                   tel. +39 - 02 64 48 79 01
DISCo, University of Milan-Bicocca U14 2043   http://dcb.disco.unimib.it
Viale Sarca 336
I-20126 Milan (MI) ITALY