Compiler Error CS0454
Circular constraint dependency involving 'Type Parameter 1' and 'Type Parameter 2'
This error arises because at some point one type parameter refers to another, and the second refers back to the first. To fix this error, break the circular dependency by removing one of the constraints. Note that the circular constraint dependency can be indirect.