module Shallow:sig
..end
type ('a, 'b)
continuation
('a,'b) continuation
是一个限定延续,它期望一个 'a
值并返回一个 'b
值。
val fiber : ('a -> 'b) -> ('a, 'b) continuation
fiber f
构造一个延续,它运行计算 f
。
type ('a, 'b)
handler = {
|
retc : |
|
exnc : |
|
effc : |
}
('a,'b) handler
是一个包含三个字段的句柄记录 - retc
是值句柄,exnc
处理异常,effc
处理由句柄封闭的计算执行的效果。
val continue_with : ('c, 'a) continuation ->
'c -> ('a, 'b) handler -> 'b
continue_with k v h
使用句柄 h
用值 v
恢复延续 k
。
Continuation_already_resumed
。val discontinue_with : ('c, 'a) continuation ->
exn -> ('a, 'b) handler -> 'b
discontinue_with k e h
使用句柄 h
通过引发异常 e
来恢复延续 k
。
Continuation_already_resumed
。val discontinue_with_backtrace : ('a, 'b) continuation ->
exn -> Printexc.raw_backtrace -> ('b, 'c) handler -> 'c
discontinue_with k e bt h
使用句柄 h
通过引发异常 e
来恢复延续 k
,使用原始回溯 bt
作为异常的来源。
Continuation_already_resumed
。val get_callstack : ('a, 'b) continuation -> int -> Printexc.raw_backtrace
get_callstack c n
返回延续 c
上的调用栈顶部的描述,最多包含 n
个条目。