+ (shift (\k. ((op2 plus) (var ten) (app (var k) (var one)))))))
+
+ Continuation_monad.(let v = reset (
+ let u = shift (fun k -> k [1] >>= fun x -> unit (10 :: x))
+ in u >>= fun x -> unit (100 :: x)
+ ) in let w = v >>= fun x -> unit (1000 :: x)
+ in run0 w)
+ - : int list = [1000; 10; 100; 1]