From cab90c16d5514ac4c9dff70ebcaeb3dda75e0910 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Thu, 27 Sep 2012 17:26:10 -0400 Subject: [PATCH] Test for appropriate predicates for invariant structs. --- .../typed-racket/succeed/structs-variance.rkt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 collects/tests/typed-racket/succeed/structs-variance.rkt diff --git a/collects/tests/typed-racket/succeed/structs-variance.rkt b/collects/tests/typed-racket/succeed/structs-variance.rkt new file mode 100644 index 0000000000..b50972d74e --- /dev/null +++ b/collects/tests/typed-racket/succeed/structs-variance.rkt @@ -0,0 +1,14 @@ +#lang typed/racket + +(struct: (A) x ([f : (A -> A)])) +(struct: (B) y ([f : (x B)])) + +(: f : (U Integer (y Integer)) -> Integer) +(define (f v) + (if (y? v) + ((x-f (y-f v)) 0) + v)) + +(f 17) + +(f (y (x (lambda: ([n : Integer]) (+ 2 n)))))