File: assume_no_perform_nested_handler.ml

package info (click to toggle)
js-of-ocaml 6.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 37,932 kB
  • sloc: ml: 135,957; javascript: 58,364; ansic: 437; makefile: 422; sh: 12; perl: 4
file content (22 lines) | stat: -rw-r--r-- 541 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
open Effect
open Effect.Deep

type _ Effect.t += Dummy : unit t

let () =
  try_with
    (fun () ->
      Jsoo_runtime.Effect.assume_no_perform (fun () ->
          try_with (fun () -> ()) () { effc = (fun (type a) (_ : a Effect.t) -> None) });
      perform Dummy)
    ()
    { effc =
        (fun (type a) (e : a Effect.t) ->
          match e with
          | Dummy ->
              Some
                (fun (k : (a, _) continuation) ->
                  print_endline "ok";
                  continue k ())
          | _ -> None)
    }