Add the forall Unicode symbol as an acceptable replacement for the
All type constructor. svn: r10797
This commit is contained in:
parent
9ca0dc49c3
commit
91291ba2bc
|
@ -75,6 +75,9 @@
|
|||
[(U Number Boolean Number) (Un N B)]
|
||||
[(U Number Boolean 1) (Un N B)]
|
||||
[(All (a) (Listof a)) (-poly (a) (make-Listof a))]
|
||||
[(All (a ...) (a ... a -> Integer)) (-polydots (a) ( (list) (a a) . ->... . -Integer))]
|
||||
[(∀ (a) (Listof a)) (-poly (a) (make-Listof a))]
|
||||
[(∀ (a ...) (a ... a -> Integer)) (-polydots (a) ( (list) (a a) . ->... . -Integer))]
|
||||
[(case-lambda (Number -> Boolean) (Number Number -> Number)) (cl-> [(N) B]
|
||||
[(N N) N])]
|
||||
[1 (-val 1)]
|
||||
|
|
|
@ -154,7 +154,8 @@
|
|||
(eq? (syntax-e #'quot) 'quote)
|
||||
(-val (syntax-e #'t))]
|
||||
[(All (vars ... v dd) t)
|
||||
(and (eq? (syntax-e #'All) 'All)
|
||||
(and (or (eq? (syntax-e #'All) 'All)
|
||||
(eq? (syntax-e #'All) '∀))
|
||||
(eq? (syntax-e #'dd) '...)
|
||||
(andmap identifier? (syntax->list #'(v vars ...))))
|
||||
(let* ([vars (map syntax-e (syntax->list #'(vars ...)))]
|
||||
|
@ -165,7 +166,8 @@
|
|||
(parameterize ([current-tvars (extend-env (cons v vars) (cons tv tvars) (current-tvars))])
|
||||
(make-PolyDots (append vars (list v)) (parse-type #'t))))]
|
||||
[(All (vars ...) t)
|
||||
(and (eq? (syntax-e #'All) 'All)
|
||||
(and (or (eq? (syntax-e #'All) 'All)
|
||||
(eq? (syntax-e #'All) '∀))
|
||||
(andmap identifier? (syntax->list #'(vars ...))))
|
||||
(let* ([vars (map syntax-e (syntax->list #'(vars ...)))]
|
||||
[tvars (map make-F vars)])
|
||||
|
|
Loading…
Reference in New Issue
Block a user