open Exception;; let foo = new_exn();; let bar = new_exn();; let x = handle foo (fun x -> x) (fun () -> raise foo 1) ;; print_int x; print_newline();; let x = handle foo (fun x -> x) (fun () -> handle bar (fun x -> 10*x) (fun () -> raise foo 2)) ;; print_int x; print_newline();; let x = handle foo (fun x -> x) (fun () -> handle bar (fun x -> 10*x) (fun () -> raise bar 3)) ;; print_int x; print_newline();; let x = handle foo (fun x -> x) (fun () -> handle bar (fun x -> 10*x) (fun () -> 4)) ;; print_int x; print_newline();;