<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=""><div class="">+1; this is great!</div><div class=""><br class=""></div><div class="">I have nothing but good things to say about the proposal itself.</div><div class=""><br class=""></div><div class="">I have two smaller questions, however; I apologize if they are off-topic.</div><div class=""><br class=""></div><div class="">One is if there’s any ETA or similar for a glimpse at the “complete picture” of Swift’s revised numeric protocols; these floating-point protocols look really, really good, but this is also (I think) the first glimpse at the new `Arithmetic` protocol, and there’s also a new “Integer” protocol coming…and it’d be nice to get a sense of the complete vision here.</div><div class=""><br class=""></div><div class="">My other question is potentially subsumed by the above, but I want to raise it now: it’d be great if there was some standardized protocol/vocabulary to use when converting between various numeric representations that was:</div><div class=""><br class=""></div><div class="">- easy for custom numeric types to *adopt* correctly (e.g. if one were to write a fixed-point type, or a rational type, etc.)</div><div class="">- easy for non-experts to *use* correctly for non-expert purposes</div><div class=""><br class=""></div><div class="">…since such conversions from one representation to another are at least IMHO a dangerous area; if you know what you’re doing it’s not dangerous, but e.g. even if someone is only trying to go from Double -> Int:</div><div class=""><br class=""></div><div class="">- they probably aren’t an expert, doing expert numerical things</div><div class="">- they may not have a solid understanding of floating point (NaN, infinities, etc.)</div><div class="">- they thus may not know they may *need* to be careful here</div><div class="">- they may not know *how* to be careful, even if they know they *should* be</div><div class="">- they may not be able to be careful *correctly*, even if they attempt it</div><div class=""><br class=""></div><div class="">…and so it’d again be great if the revised numeric protocols allow as broad a range of such conversions as possible to be handled by generic code in the standard library. </div><div class=""><br class=""></div><div class="">It certainly looks like `FloatingPoint` protocol itself provides enough information to allow an expert to write generic version of most floating point -> integer conversion variants I can think of, but I’m not an expert…but it’d be great if e.g. there was some simpler protocol other custom numeric types could adopt to take advantage of expert-written generic conversions to other numeric types. </div><div class=""><br class=""></div><div class="">I can provide examples if this is unclear, and if it’s off-topic it can wait for another time. </div><div class=""><br class=""></div><div class="">This `FloatingPoint` revision itself looks really really good! </div><br class=""><div><blockquote type="cite" class=""><div class="">On Apr 14, 2016, at 6:55 PM, Stephen Canon via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><h1 style="box-sizing: border-box; font-size: 2.25em; margin-right: 0px; margin-bottom: 16px; margin-left: 0px; line-height: 1.2; padding-bottom: 0.3em; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238); color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; background-color: rgb(255, 255, 255); margin-top: 0px !important;" class="">Enhanced floating-point protocols</h1></div></div></blockquote><br class=""></div><br class=""></body></html>