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)))))