From Razvan's DConf 2024 talk.
// over.d
private void gun();
public void gun(int);
public alias t = gun;
// main.d
import over;
void main() {
t();
}
A warning should be given if private and public is in overloaded set.
(Other potential solutions at compiler level are to error in talk).