The problem (I guess) is 2 type parameter lists, one of aggregate and the other of function:
struct Foo(T) if (isSomeSuch!T) { this(U)(T a, U u) if (isSomethindElse!U) {...} this(R)(T x, R r) if (yetAnother!U){ ... } }I believe in such a case compiler can as far as IFTI goes just consider a combined tuple of types.
Thoughts?