<div dir="ltr">It&#39;s weird to me that protocol-typed objects aren&#39;t seen as conforming to that protocol. I would intuitively expect this function to work for both a sequence of Pepper types and other types that conform to Pepper:<br><span><div style="margin:0px;line-height:normal"><span style="color:rgb(187,44,162)">func</span><span> pick&lt;PepperType:</span><span style="color:rgb(112,61,170)">Sequence</span><span>&gt;(<wbr>peppers: </span><span>PepperType</span><span>) </span><span style="color:rgb(187,44,162)">where</span><span> </span><span>PepperType</span><span>.Iterator.Element: </span><span>Pepper</span><span> {</span></div><div style="margin:0px;line-height:normal;color:rgb(0,132,0)"><span style="color:rgb(0,0,0)">    </span><span>// pick a peck of peppers</span></div><div style="margin:0px;line-height:normal"><span>}</span></div></span><br></div>