open Cupto type 'a ref val ref : 'a prompt -> 'b -> ('b ref -> 'c) -> 'c val backup : 'a ref -> (unit -> 'b) -> 'b val (!) : 'a ref -> 'a val (:=) : 'a ref -> 'a -> unit val eval : ('a prompt -> 'a) -> 'a