Improve type of call-with-continuation-prompt
Now works with the handler argument omitted, in which case the default handler is used. Note that the default handler cannot be used in conjunction with the default prompt tag because it is unsound to do so. original commit: 4e0b38ea79b8ffa84fd099d980a2713a3831d589
This commit is contained in:
parent
80f7b65db7
commit
c6d22871bc
|
@ -19,4 +19,13 @@
|
|||
(abort-current-continuation pt2 k))
|
||||
pt2)))
|
||||
pt2
|
||||
(λ: ([f : (Integer -> Integer)]) (f 5)))
|
||||
(λ: ([f : (Integer -> Integer)]) (f 5)))
|
||||
|
||||
;; Test the default handler
|
||||
(: pt3 (Prompt-Tag Integer ((-> Integer) -> Integer)))
|
||||
(define pt3 (make-continuation-prompt-tag))
|
||||
|
||||
(+ 2
|
||||
(call-with-continuation-prompt
|
||||
(λ () (+ 1 (abort-current-continuation pt3 (λ () 5))))
|
||||
pt3))
|
|
@ -2021,6 +2021,7 @@
|
|||
[call-with-continuation-prompt
|
||||
(-polydots (a b d c)
|
||||
(cl->*
|
||||
(-> (-> b) (make-Prompt-Tag b (-> (-> d) d)) (Un b d))
|
||||
(-> (-> b) (make-Prompt-Tag b (->... '() (c c) d)) (->... '() (c c) d)
|
||||
(Un b d))
|
||||
(-> (-> b) Univ)))]
|
||||
|
|
Loading…
Reference in New Issue
Block a user