Hi,
Here's a new version of the patch. This tries to handle #!optional and
#!rest in procedure types correctly, in addition to the parameter
contravariance stuff. The implementation should be cleaner now.
This is still not ready to be merged to the master. At least the
signatures in types.db
Hi Evan,
I don't think you can apply this patch as is, there will be just too
many warning messages by the scrutinizer.
Declaring a function like this:
(: foo ((* -> *) -> *))
doesn't say foo doesn't care what the passed function takes as argument.
It says that function must take _everything_
Hi megane,
I just wanted to let you know this hasn't fallen off the map -- I'm
hoping to look into this next week.
Thanks for your patience,
Evan
___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
Hello again,
this fixes #1446 I reported earlier.
The patch applies after the other patch I posted today.
Here's a simple example showing the issue:
(define-type T (or string boolean))
(: foo ((T T -> any) T -> any))
(define (foo f a) (f a "foo"))
(: bar (string string -> any))
(define (bar a