<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 23, 2017, at 11:31 AM, David Sweeris &lt;<a href="mailto:davesweeris@mac.com" class="">davesweeris@mac.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class=""><div class=""><span class=""></span></div><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div class=""><br class=""></div><div class="">On Feb 23, 2017, at 07:33, plx via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""></div><blockquote type="cite" class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""></div><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Next quibble: `Magnitude` being defined as the “absolute value” of the underlying type seems a bit nonsensical if e.g. `Number` is intended to be adoptable by complex numbers (let alone quaternions, matrices, and whatnot). What *would* a conforming complex # implementation be expected to return as e.g. `(1-i).magnitude`?</div></blockquote><div class=""><br class=""></div><div class="">sqrt(2), I believe, or as close to it as can be represented by `Magnitude`</div></div></div></div></blockquote><br class=""></div><div>…which is what I’d expect if `x.magnitude` is supposed to be `||x||` or whatnot, but the stated motivation is:</div><div><br class=""></div><div>&nbsp;&nbsp;///&nbsp;The magnitude of this value.<br class="">&nbsp;&nbsp;///<br class="">&nbsp;&nbsp;///&nbsp;For any numeric value `x`, `x.magnitude` is the absolute value of `x`.<br class="">&nbsp;&nbsp;///&nbsp;You can use the `magnitude` property in operations that are simpler to<br class="">&nbsp;&nbsp;///&nbsp;implement in terms of unsigned values, such as printing the value of an<br class="">&nbsp;&nbsp;///&nbsp;integer, which is just printing a '-' character in front of an absolute<br class="">&nbsp;&nbsp;///&nbsp;value.<br class="">&nbsp;&nbsp;///<br class="">&nbsp;&nbsp;///&nbsp; &nbsp; &nbsp;let x = -200<br class="">&nbsp;&nbsp;///&nbsp; &nbsp; &nbsp;// x.magnitude == 200<br class=""><br class=""></div><div>…for which uses the norm is not really helpful (and `Magnitude` not being `Comparable` is pretty annoying if it’s intended to be a norm; it really seems only intended to work as a generic tool for writing pretty-printers).</div><br class=""></body></html>