<div dir="ltr"><div class="gmail_extra">If indeed “all(equal:)” is rarely needed, then perhaps it is best to leave it out *and also* leave out the argument label from “all(matching:)”. Then the signature would be similar to,</div><div class="gmail_extra"><br></div><div class="gmail_extra"><font face="monospace, monospace">func all(_ predicate: (Element)-&gt;Bool) -&gt; Bool</font></div><div class="gmail_extra"><br></div><div class="gmail_extra">and the points-of-use would look like:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><font face="monospace, monospace">nums.all( isEven )</font></div><div class="gmail_extra"><font face="monospace, monospace">nums.all{ $0 == 9 }</font></div><div class="gmail_extra"><font face="monospace, monospace">nums.all{ n in n*n &lt; 2 }</font></div><div class="gmail_extra"><br></div><div class="gmail_extra">Nevin</div></div>