let ___bisect_mark___ =
  let marks = Array.make 9 0 in
  let (hook_before, hook_after) = Bisect.Runtime.get_hooks ()
  in
    (Bisect.Runtime.init_with_array "expr_binding.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 x = (___bisect_mark___ 0; 3)
  
let y = (___bisect_mark___ 1; [ 1; 2; 3 ])
  
let z = (___bisect_mark___ 2; [| 1; 2; 3 |])
  
let f x = (___bisect_mark___ 3; print_endline x)
  
let f' x =
  (___bisect_mark___ 5;
   let x' = String.uppercase x in (___bisect_mark___ 4; print_endline x'))
  
let g x y z = (___bisect_mark___ 6; (x + y) * z)
  
let g' x y =
  (___bisect_mark___ 8;
   print_endline x;
   ___bisect_mark___ 7;
   print_endline y)
  

