typed-racket/typed-racket-test/succeed/promise.rkt
2014-12-16 10:07:25 -05:00

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)