fn get_generic_arg<'a>( segments: impl IntoIterator<Item = &'a PathSegment>, ) -> Result<&'a Type, String>