let fun_variant_visible ff_opt v =
    SlicingParameters.debug ~level:2 "[SlicingTransform.Visibility.fun_variant_visible] %a ?"
      !Ast_printer.d_term v ;
    let visible = match ff_opt with
      | Isrc -> true
      | Iproto -> true
      | Iff (ff,_) ->
          let kf = M.get_ff_kf ff  in
          let pdg = !Db.Pdg.get kf in
            try
              let nodes = !Db.Pdg.find_fun_variant_nodes pdg v in
                data_nodes_visible ff nodes
            with Extlib.NotYetImplemented _ -> (* TODO remove this when ok *)
              all_logic_var_visible_term ff v
    in SlicingParameters.debug ~level:2 "[SlicingTransform.Visibility.fun_variant_visible] -> %s"
              (if visible then "yes" else "no");
       visible