<div dir="ltr">In Swift 4:<br><div><br></div><div><div>protocol P1 {</div><div>    associatedtype A: P1 // Error: Type may not reference itself as a requirement</div><div>}</div><div>protocol P2 {</div><div>    associatedtype A where A: P2 // OK</div><div>}</div></div><div><br></div><div>What is the rationale behind this?</div><div><br></div><div>/Jens</div></div>