<div dir="ltr">How about removing ?: and adding a simple library:<div><br></div>    struct IfFalse&lt;T&gt; {<br>        let condition: Bool<br>        <br>        let ifTrue: () -&gt; T<br>       <br>        init(condition: Bool, ifTrue: () -&gt; T) {<br>            self.condition = condition<br>            self.ifTrue = ifTrue<br>        }<br>       <br>        func ifFalse(ifFalse: () -&gt; T) -&gt; T {<br>            if condition {<br>                return ifTrue()<br>            }<br>            return ifFalse()<br>        }<br>    }<br>    <br>    extension Bool {<br>        func ifTrue&lt;T&gt;(ifTrue: () -&gt; T) -&gt; IfFalse&lt;T&gt; {<br>            return IfFalse(condition: self, ifTrue: ifTrue)<br>        }<br>    }<div><br><div>Used:</div><br>    print(true.ifTrue{&quot;True&quot;}.ifFalse{&quot;False&quot;})<br>    print(false.ifTrue{&quot;True&quot;}.ifFalse{&quot;False&quot;})<br><br>Likely to be slower than ?: at the moment, but maybe could be optimised in the future.</div><div><br>  -- Howard.<br></div></div>