struct Opt { Opt!T opCall(T)(T v) { ..... } } struct Opt(T) { } Error: class m.Opt conflicts with class m.Opt(T)
Why shouldn't it conflict?
templates can only have overloads that are also templates. Also the pattern that was tried here (so IFTI i believe) is usually more done using opt(T)(T t) { return Opt!T(t) }