<div dir="ltr"><div>Craig, golly just looking at your example depresses me. I&#39;m not saying it&#39;s contrived, it seems like real enough code. With the combination of our proposals, and the requirement to explicitly cast to Double... ugh, my eyes just glaze over.</div><div><br></div><div>Here&#39;s &quot;where&quot;...</div><div><br></div><div>let commission = trade ?</div><div><span class="" style="white-space:pre">        </span>case .Buy(let quantity, let price) where Double(quantity) * price &gt; 10000:</div><div> <span class="" style="white-space:pre">                </span>Double(quantity) * price * vipCommissionRate / 100</div><div><span class="" style="white-space:pre">        </span>case .Buy(let quantity, let price):</div><div><span class="" style="white-space:pre">                </span>Double(quantity) * price * commissionRate / 100</div><div><span class="" style="white-space:pre">        </span>case .Sell(let quantity, let price) where Double(quantity) * price &gt; 10000:</div><div><span class="" style="white-space:pre">                </span>Double(quantity) * price * vipCommissionRate / 100</div><div><span class="" style="white-space:pre">        </span>case .Sell(let quantity, let price):</div><div>    <span class="" style="white-space:pre">                </span>Double(quantity) * price * commissionRate / 100</div><div><br></div><div>I also tried my favourite proposal:</div><div><br></div><div>let commission = trade ?</div><div><span class="" style="white-space:pre">        </span>.Buy(let quantity, let price) ! </div><div><span class="" style="white-space:pre">                </span>Double(quantity) * price &gt; 10000 ? </div><div><span class="" style="white-space:pre">                        </span>Double(quantity) * price * vipCommissionRate / 100 : </div><div><span class="" style="white-space:pre">                        </span>Double(quantity) * price * commissionRate / 100 : </div><div><span class="" style="white-space:pre">        </span>.Sell(let quantity, let price) ! </div><div><span class="" style="white-space:pre">                </span>Double(quantity) * price &gt; 10000  ? </div><div><span class="" style="white-space:pre">                        </span>Double(quantity) * price * vipCommissionRate / 100 : </div><div><span class="" style="white-space:pre">                        </span>Double(quantity) * price * commissionRate / 100</div><div><br></div><div>Both of these are unreadable. I think my preferred example is slightly unreadable <b><i>when it&#39;s indented</i></b> the way I have here, but it would be a complete and total disaster as a single line... which people tend to do with ternary expressions :(  </div><div><br></div><div><br></div>​</div>