From 43863acd3666f03852dc6ce6489dd81ad43123e0 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. original commit: cab90c16d5514ac4c9dff70ebcaeb3dda75e0910 --- .../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 00000000..b50972d7 --- /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)))))