<div dir="ltr">Hi All,<br><br>Does anyone have a good workaround for generics not currently supporting conditional conformance to a protocol. As stated in the Generics Manifesto something like this would be nice:<br><br>  extension Array: Equatable where Element: Equatable {<br>        static func ==(lhs: Array, rhs: Array) -&gt; Bool { ... }<br>    }<br><br>But I would currently write a wrapper, something like:<br><br>    struct ArrayE&lt;T: Equatable&gt; {<br>        var elements: [T]<br>    }<br>    extension ArrayE: Equatable {<br>        static func ==(lhs: ArrayE, rhs: ArrayE) -&gt; Bool { ...  }<br>    }<br><br>This can get unwieldy when there are a lot of conditional protocol extensions required, i.e. wrappers round wrappers.<br><br>Is there a better way?<br><br>Thanks for any tips,<br><br>  -- Howard.</div>