let ___bisect_mark___ =
  let marks = Array.make 10 0 in
  let (hook_before, hook_after) = Bisect.Runtime.get_hooks ()
  in
    (Bisect.Runtime.init_with_array "expr_for.ml" marks false;
     fun idx ->
       (hook_before ();
        let curr = marks.(idx)
        in
          (marks.(idx) <- if curr < max_int then succ curr else curr;
           hook_after ())))
  
let () =
  (___bisect_mark___ 5;
   print_endline "before";
   ___bisect_mark___ 4;
   for i = 1 to 3 do
     ___bisect_mark___ 2;
     print_endline "abc";
     ___bisect_mark___ 1;
     print_endline "def";
     ___bisect_mark___ 0;
     print_endline "ghi"
   done;
   ___bisect_mark___ 3;
   print_endline "after")
  
let () =
  (___bisect_mark___ 9;
   print_endline "before";
   ___bisect_mark___ 8;
   for i = 1 to 3 do ___bisect_mark___ 6; print_endline "abc" done;
   ___bisect_mark___ 7;
   print_endline "after")
  

