#; (exn-fail "incomplete coverage; missing coverage of Negative-Integer") #lang typed/racket (define-syntax (cond* stx) (syntax-case stx () [(_ x clause ...) #`(cond clause ... [else (typecheck-fail #,stx "incomplete coverage" #:covered-id x)])])) (: f : (U String Integer) -> Boolean) (define (f x) (cond* x [(string? x) #t] [(exact-nonnegative-integer? x) #f]))