exception Prompt (* to report uncaught prompts *) type 'a prompt val new_prompt : unit -> 'a prompt val set : 'a prompt -> (unit -> 'a) -> 'a val cupto : 'a prompt -> (('b -> 'a) -> 'a) -> 'b