Summary

scrutiny for list-of type wrong when matched with pair types

Metadata

Description

See the program in #948; this particular case was fixed, but changing list to cons will cause breakage:

 #!scm
 (: apply1 (forall ((a number) b) (procedure ((procedure (#!rest a) b) (list-of a)) b)))
 
 (define (apply1 f args)
   (apply f args))
 
 (apply1 + (cons 'a (cons 2 '())))  ;;; Should give a warning, but doesn't

Changes and comments

[2012-11-10 18:40:59 UTC] sjamaan changed status from new to closed

[2012-11-10 18:40:59 UTC] sjamaan set resolution to fixed

[2012-11-10 18:40:59 UTC] sjamaan wrote:

Fixed with dd46f23