let ___bisect_mark___ =
  let marks = Array.make 6 0 in
  let (hook_before, hook_after) = Bisect.Runtime.get_hooks ()
  in
    (Bisect.Runtime.init_with_array "expr_polyrec.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 rec (f : 'a. 'a -> unit) =
  fun _ -> (___bisect_mark___ 1; f 0; ___bisect_mark___ 0; f "")
  
let () =
  (___bisect_mark___ 5;
   let rec f : 'a. 'a -> unit =
     fun _ -> (___bisect_mark___ 3; f 0; ___bisect_mark___ 2; f "")
   in (___bisect_mark___ 4; f 0))
  

