New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge numeric ranges in presence of NOT types #1
Comments
Can you please give more details about what needs to be changed in rte? If sbcl subtype gives the wrong answer I'm not sure what the application can do. I'd love to have a better understanding of your idea. |
There is a simple algorithm that I have implemented in CCL's type system once.
|
Thanks for the comment, but when I say "give more details" I really mean more details about which call involving rte is failing? What you are describing seems like something that should be fixed in sbcl. Perhaps I'm misunderstanding you. Do you expect rte to do the right thing even when the underlying subtypep is buggy? If so, then we can discuss ways of avoiding sbcl:subtypep, there are several approaches. |
Oh! Okay. I expected that the following call would do the right thing and return CL-USER> (lisp-types:reduce-lisp-type '(OR (REAL * (-3.5d0))
(REAL (-3.5d0))
(NOT INTEGER)))
(OR (NOT INTEGER) (REAL * (-3.5d0)) (REAL (-3.5d0))) The algorithm I described is fully independent of SBCL's subtypep - in particular, step 2 can utilize |
The below type is
T
, because-3.5d0
is a member of(NOT INTEGER)
. This library does not detect this case though. (And neither do CCL or SBCL's type systems!)The text was updated successfully, but these errors were encountered: