Builder<IConst<TLeft, TRight>> and I need generic constraint that will accept only those Builder's, which have both IWithFoo and IWithBar somewhere inside their IConst<TLeft, TRight>.Build<T> accepts T where T : IWithBar, IWithFoo, but that would require ICons<TLeft, TRight> to implement TLeft and TRight, which I was answered is not possible (here: helpInterface implementing generic parameters)