Generalize fixed-length lists to listofs.

Closes PR10057.
This commit is contained in:
Sam Tobin-Hochstadt 2010-07-02 12:03:20 -04:00
parent 35c28f4f66
commit 570df7d665
2 changed files with 6 additions and 0 deletions

View File

@ -0,0 +1,5 @@
#lang typed-scheme
(require scheme/match)
(ann (match '(a b c)
[(list sym more ...) 1]
[else 1]) Integer)

View File

@ -31,6 +31,7 @@
(match t* (match t*
[(Value: '()) (-lst Univ)] [(Value: '()) (-lst Univ)]
[(Value: 0) -Nat] [(Value: 0) -Nat]
[(List: ts) (-lst (apply Un ts))]
[(? (lambda (t) (subtype t -Nat))) -Nat] [(? (lambda (t) (subtype t -Nat))) -Nat]
[(? (lambda (t) (subtype t -Integer))) -Integer] [(? (lambda (t) (subtype t -Integer))) -Integer]
[(? (lambda (t) (subtype t -Flonum))) -Flonum] [(? (lambda (t) (subtype t -Flonum))) -Flonum]