Re: [Chicken-hackers] [PATCH][5] Change procedure argument type relation to contravariant

2018-05-28 Thread megane
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

Re: [Chicken-hackers] [PATCH][5] Change procedure argument type relation to contravariant

2018-04-21 Thread megane
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_

Re: [Chicken-hackers] [PATCH][5] Change procedure argument type relation to contravariant

2018-04-16 Thread Evan Hanson
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

[Chicken-hackers] [PATCH][5] Change procedure argument type relation to contravariant

2018-03-30 Thread megane
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