API для продолжений с разделителями с несколькими подсказками описан в статье Delimited Control in OCaml, Abstractly and Concretely System Description .
Мой вопрос касается типа push_subcont : ('a,'b) subcont -> (unit -> 'a) -> 'b
. Почему этот тип не ('a,' b) subcont -> 'a -> 'b
? Кроме того, почему существует отдельный тип для subcont: почему бы не просто ('a,'b) subcont = 'a -> 'b
Я почти уверен, что на это есть веская причина, потому что Олег делает вещи максимально изящными (но не изящнее).
Спасибо!