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

23 lines
432 B
Racket

#lang typed/racket
;Doesn't TypeCheck
(struct: foo ())
(struct: foo-num foo ((v : Number)))
(struct: foo-str foo ((v : String)))
#|
;TypeChecks
(struct: foo-num ((v : Number)))
(struct: foo-str ((v : String)))
|#
(: extract-foo (case-lambda
(foo-num -> Number)
(foo-str -> String)))
(define (extract-foo foo)
(cond
((foo-num? foo) (foo-num-v foo))
((foo-str? foo) (foo-str-v foo))))