Subject: Re: bug#66615: 30.0.50; Inconsistent 'number-or-marker' type definition in the cl- machinery
From: Andrea Corallo <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: [email-masked], Mattias Engdegård <[email-masked]>
Date: Thu, 19 Oct 2023 08:02:42 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Andrea Corallo <[email-masked]> writes:

> [re-replaying as for some reason our responses didn't reach the list]
>
> Stefan Monnier <[email-masked]> writes:
>
>>> My question is, why do we consider 'number-or-marker' in the first place
>>> a type if we support the or syntax in `cl-typep' like
>>> (cl-typep 3 '(or marker number)) ?
>>
>> I'm not sure I can give a good answer in general, but I can tell you
>> some reasons that explain some of what we see:
>>
>> - There is a `number-or-marker-p` primitive and `cl-typep` doesn't know
>>   how to use it for `(or number marker)`.
>
> Well we could just remove 'number-or-marker-p' 😃
>
>> - method specializers (currently) can't be `(or number marker)` but can be
>>   `number-or-marker`.
>
> Okay this is more difficult to fix... :/
>
>>> I'd like to fix this inconsistency in order to progress with my
>>> development, originally I worked out the attached patch but I now
>>> suspect that (unless there's a specific reason) we should just remove
>>> 'number-or-marker' as a type entirely instead.
>>
>> I'd lean towards keeping it :-)
>
> I see your point, actually my main drive is to make the situation more
> coherent so I'm unblocked in the first place, just the method
> specializer functionality is a blocker for removing 'number-or-marker'.
>
> I think adding 'number-or-marker' where missing is probably the best
> solution for now.

Okay with a567faf4c2b I added 'number-or-marker' where it was missing.
Closing this, happy to reopen if necessary.

Thanks!

  Andrea