pub(crate) fn open_with_sonames<T, F>( names: &[&str], module: Option<&str>, open: F, ) -> Option<T>where F: Fn(&str) -> Result<T, DlError>,