xxxxxxxxxx
--- test2.d
void act1(T : void)() { }
void act2(T : int)() { }
void call(alias fn, T)()
{
alias instance = fn!T;
instance(); // this works
fn!T(); // this does not!
}
--- test.d
import test2 : act = act1, act = act2, call;
void main()
{
act!int(); // this works
act!void(); // this works, so act is an overload set
call!(act, void); // but not this?
call!(act, int); // and not this either!
}