Is this what you're looking for?
struct Foo(T)
{
static void bar() { writeln("general"); }
}
struct Foo(T : A[B], A, B)
{
static void bar() { writeln("special"); }
}
void main()
{
Foo!(int).bar(); // general
Foo!(int[int]).bar(); // special
}
