open Cupto type ('a,'c) fcont type 'a toplevel = 'a prompt;; val shift : 'a toplevel -> (('b,'a) fcont -> 'a) -> 'b val reset : 'a toplevel -> (unit -> 'a) -> 'a val callcc : 'a toplevel -> (('b,'a) fcont -> 'b) -> 'b val throw : 'a toplevel -> ('b,'a) fcont -> 'b -> 'c val eval : ('a toplevel -> 'a) -> 'a