#lang typed/racket

(let ([x 1] [y "2"])
  (with-asserts ([x integer?] [y string?])
                x))
(let ([x 1] [y "2"])
  (with-asserts ([x integer?])
                x))
(let ([x 1] [y "2"])
  (with-asserts ()
                x))
(let ([x 1] [y "2"])
  (with-asserts ([x])
                x))

(: f : (U Integer String) -> Integer)
(define (f x)
  (with-asserts ([x integer?])
                x))
(f 1)
