let rec key_visible fm key =
  try
    match key with
      | PdgIndex.Key.CallStmt call_id ->
          let call = PdgIndex.Key.call_from_id call_id in
            call_visible fm call
      | _ -> let m = PdgIndex.FctIndex.find_info fm key in
          BoolMark.visible m
  with Not_found -> false
and
  
  (** the call is visible if its control node is visible *)

  call_visible fm call =
  let key = PdgIndex.Key.call_ctrl_key call in
    key_visible fm key