Test for former bug. Closes PR 10470.

original commit: 775e1b06a577a1306ab50de05174a6e26f944d40
This commit is contained in:
Sam Tobin-Hochstadt 2010-05-24 23:29:17 -07:00
parent 987521b9eb
commit f5c6d808af

View File

@ -0,0 +1,15 @@
(module pr10470 typed-scheme
(define-type-alias (Memo alpha) (U (Option alpha) (-> (Option alpha))))
(define-struct: table ([val : (Memo Number)]) #:mutable)
(: f (table -> (Option Number)))
(define (f tab)
(let ([proc-or-num (table-val tab)])
(cond
[(procedure? proc-or-num)
(let ([result (proc-or-num)])
(set-table-val! tab result)
result)]
[else proc-or-num]))))