racket globals added by megane on Fri Jun 15 18:39:26 2018
(module
m typed/racket
(provide g foo)
(: g (U String Boolean)) ; <- annotate g to be (or string boolean)
(define g "a")
(define (foo)
(string-append g))
;; globals.rkt:6:17: Type Checker: type mismatch
;; expected: String
;; given: (U Boolean String)
;; in: g
;; ^^ no warnings without the type annotation
;; (define (foo)
;; (if (string? g)
;; (+ 1 g)
;; "else"))
;; globals.rkt:19:12: Type Checker: type mismatch
;; expected: Number
;; given: String
;; in: g
;; ^^ this happens even without the type annotation
)