<div dir="ltr">You raised two points:<div><br></div><div>  1. &quot;... magnitude is something the number ‘has’ whereas signum is a completely new thing ...&quot; I think sign is as much part of a number as magnitude. Its a minor point, code complete gets it anyway.</div><div><br></div><div>  2. &quot;... [extras] are defined as protocol extensions, therefore they should be discoverable through completion ...&quot; I wasn&#39;t thinking so much about code completion, more browsing the protocol to see what is available (I use SwiftDoc quite a bit).</div><div><div><br></div><div>Thanks for running with this - very valuable,<br><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">  -- Howard.<br></div></div>
<br><div class="gmail_quote">On 22 February 2017 at 10:27, Max Moiseev <span dir="ltr">&lt;<a href="mailto:moiseev@apple.com" target="_blank">moiseev@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><br><div><blockquote type="cite"><div>On Feb 21, 2017, at 3:05 PM, Howard Lovatt via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br class="gmail-m_-1122608621786085499Apple-interchange-newline"><div><div>The re-review of SE-0104 &quot;Protocol-oriented integers&quot; begins now and runs through February 25, 2017. This proposal was accepted for Swift 3, but was not implemented in time for the release. The revised proposal is available here:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class="gmail-m_-1122608621786085499gmail_msg"><br class="gmail-m_-1122608621786085499gmail_msg"><span class="gmail-m_-1122608621786085499m_-2917819102280157209Apple-tab-span gmail-m_-1122608621786085499gmail_msg" style="white-space:pre-wrap">        </span><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0104-improved-integers.md" class="gmail-m_-1122608621786085499gmail_msg" target="_blank">https://github.com/apple/<wbr>swift-evolution/blob/master/<wbr>proposals/0104-improved-<wbr>integers.md</a><br class="gmail-m_-1122608621786085499gmail_msg"><br><div class="gmail-m_-1122608621786085499gmail_msg"><br class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><span class="gmail-m_-1122608621786085499m_-2917819102280157209Apple-tab-span gmail-m_-1122608621786085499gmail_msg" style="white-space:pre-wrap">        </span>• What is your evaluation of the proposal?</div></div></div></blockquote><div><br></div><div>Well worth while. Few nit picks:</div><div><br></div><div><div>  1. Number.init? Description should say BinaryInteger not floating-point.</div></div></div></div></div></blockquote>I’ll update the proposal.</div><div><br><blockquote type="cite"><div><div><div class="gmail_quote"><div><div>  2. Number should document that mutating versions of operators can overflow.</div><div>  3. SignedNumber should document that negate and unary `-` can overflow.</div></div></div></div></div></blockquote>Documentation changes noted. Thanks!</div><div><br><blockquote type="cite"><div><div><div class="gmail_quote"><div><div>  4. SignedNumber, it is weird that `signum` is a function when other similar things, e.g. `magnitude`, are properties.</div></div></div></div></div></blockquote>I think of it as: magnitude is something the number ‘has’ whereas signum is a completely new thing of the same type.</div><div><br><blockquote type="cite"><div><div><div class="gmail_quote"><div><div>  5. Not worth representing `DoubleWidth` as an enumeration, it is obscure and therefore will only confuse people.</div><div>  6. It would be better to put the &#39;extra&#39; operations into the protocols and provide default implementations, otherwise they are difficult to find. </div></div></div></div></div></blockquote>They are defined as protocol extensions, therefore they should be discoverable through completion and in the generated source code. Or what do you mean by ‘difficult to find’?</div><div><br></div><div>Thanks for the feedback!</div><div><br><blockquote type="cite"><div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><br class="gmail-m_-1122608621786085499gmail_msg"></div><div class="gmail-m_-1122608621786085499gmail_msg"><span class="gmail-m_-1122608621786085499m_-2917819102280157209Apple-tab-span gmail-m_-1122608621786085499gmail_msg" style="white-space:pre-wrap">        </span>• Is the problem being addressed significant enough to warrant a change to Swift?</div></div></div></blockquote><div><br></div><div>Yes, the current design has not served my purpose on more than one occasion </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><br class="gmail-m_-1122608621786085499gmail_msg"></div><div class="gmail-m_-1122608621786085499gmail_msg"><span class="gmail-m_-1122608621786085499m_-2917819102280157209Apple-tab-span gmail-m_-1122608621786085499gmail_msg" style="white-space:pre-wrap">        </span>• Does this proposal fit well with the feel and direction of Swift?</div></div></div></blockquote><div><br></div><div>Yes</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><br class="gmail-m_-1122608621786085499gmail_msg"></div><div class="gmail-m_-1122608621786085499gmail_msg"><span class="gmail-m_-1122608621786085499m_-2917819102280157209Apple-tab-span gmail-m_-1122608621786085499gmail_msg" style="white-space:pre-wrap">        </span>• If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?</div></div></div></blockquote><div><br></div><div>Yes, this proposal is similar to what other languages provide, e.g. Scala. In Scala however they tackle the `conversion problem as well in their `traits heirarchy. I guess this could be added at a later date.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><br class="gmail-m_-1122608621786085499gmail_msg"></div><div class="gmail-m_-1122608621786085499gmail_msg"><span class="gmail-m_-1122608621786085499m_-2917819102280157209Apple-tab-span gmail-m_-1122608621786085499gmail_msg" style="white-space:pre-wrap">        </span>• How much effort did you put into your review? A glance, a quick reading, or an in-depth study?</div></div></div></blockquote><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"><div class="gmail-m_-1122608621786085499gmail_msg"></div></div></div></blockquote><div>Read the proposal, have used similar features in other languages, and have had trouble with Swift&#39;s current heirarchy. </div></div></div><span class="gmail-HOEnZb"><font color="#888888"><div dir="ltr">-- <br></div><div>-- Howard.</div>
______________________________<wbr>_________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br></font></span></div></blockquote></div><br></div></blockquote></div><br></div></div></div></div>