type 'a prompt = 'a Cupto.prompt;; let shift p a = Cupto.cupto p (fun k -> Cupto.set p (fun () -> a k));; let reset = Cupto.set;; let new_prompt = Cupto.new_prompt;;