1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
(* TEST
*)
open Effect
open Effect.Deep
type _ t += E : string t
let _ =
try_with perform E
{ effc = fun (type a) (e : a t) ->
Some (fun k ->
(* We have to make sure that neither the match nor the call
to Marshal.to_string are eliminated, so we call
print_string and we print the result of the marshalling
function. *)
match print_string "";
Stdlib.Marshal.to_string k [] with
| x -> Printf.printf "%S" x; assert false
| exception (Invalid_argument _) -> print_endline "ok"; ""
) }
|