15 lines
319 B
Racket
15 lines
319 B
Racket
#lang typed/racket
|
|
|
|
(require typed/rackunit)
|
|
|
|
;; Test path reasoning for promises
|
|
|
|
(: foo : (Promise (U Integer String)) -> (U Number False))
|
|
(define (foo del)
|
|
(if (integer? (force del))
|
|
(+ 1 (force del))
|
|
(string->number (force del))))
|
|
|
|
(check-equal? (foo (delay 5)) 6)
|
|
(check-equal? (foo (delay "5")) 5)
|