Yes, if convenient.
I already emailed Ryan privately about it.
Vincent
At Mon, 20 Oct 2014 17:54:59 -0400,
Matthias Felleisen wrote:
DOn't we want to merge this into 6.1.1?
On Oct 20, 2014, at 3:44 PM, stamo...@racket-lang.org wrote:
stamourv has updated `master' from 538bb75d64 to 9030680e31.
http://git.racket-lang.org/plt/538bb75d64..9030680e31
=[ One Commit ]=
Directory summary:
16.9% pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/
83.0%
pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/
~~
9030680 Vincent St-Amour stamo...@racket-lang.org 2014-10-20 11:34
:
| Fix types for foldl and foldr with 3 lists.
|
| Thanks to Jack Firth for the report.
:
M .../tests/typed-racket/unit-tests/typecheck-tests.rkt| 13
+
M .../typed-racket-lib/typed-racket/base-env/base-env.rkt | 4 ++--
=[ Overall Diff ]===
pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt
~~
---
OLD/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt
+++
NEW/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt
@@ -657,11 +657,11 @@
(-poly (a b c d)
(cl- [((a b . - . b) b (-lst a)) b]
[((a b c . - . c) c (-lst a) (-lst b)) c]
- [((a b c d . - . d) d (-lst a) (-lst b) (-lst d)) d]))]
+ [((a b c d . - . d) d (-lst a) (-lst b) (-lst c)) d]))]
[foldr (-poly (a b c d)
(cl- [((a b . - . b) b (-lst a)) b]
[((a b c . - . c) c (-lst a) (-lst b)) c]
- [((a b c d . - . d) d (-lst a) (-lst b) (-lst d))
d]))]
+ [((a b c d . - . d) d (-lst a) (-lst b) (-lst c))
d]))]
[filter (-poly (a b) (cl-*
((asym-pred a Univ (-FS (-filter b 0) -top))
(-lst a)
pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt
~~
---
OLD/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt
+++
NEW/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt
@@ -1155,6 +1155,19 @@
(-polydots (a) ((list) (a a) . -... . -Integer))]
|#
+[tc-e (foldl (lambda: ([x : Integer] [acc : String]) acc) '(1 2
3))
+ -String]
+[tc-e (foldl (lambda: ([x : Integer] [y : Float] [acc : String])
acc) '(1 2 3) '(1.2 3.4 5.6))
+ -String]
+[tc-e (foldl (lambda: ([x : Integer] [y : Float] [z : Symbol ]
[acc : String]) acc) '(1 2 3) '(1.2 3.4 5.6) '(a b c))
+ -String]
+[tc-e (foldr (lambda: ([x : Integer] [acc : String]) acc) '(1 2
3))
+ -String]
+[tc-e (foldr (lambda: ([x : Integer] [y : Float] [acc : String])
acc) '(1 2 3) '(1.2 3.4 5.6))
+ -String]
+[tc-e (foldr (lambda: ([x : Integer] [y : Float] [z : Symbol ]
[acc : String]) acc) '(1 2 3) '(1.2 3.4 5.6) '(a b c))
+ -String]
+
;; First is same as second, but with map explicitly instantiated.
[tc-e/t (plambda: (a ...) [ys : (a ... a - Number) *]
(lambda: [zs : a ... a]
_
Racket Developers list:
http://lists.racket-lang.org/dev