<div>On Tue, Jan 16, 2018 at 00:32 Nevin Brackett-Rozinsky &lt;<a href="mailto:nevin.brackettrozinsky@gmail.com">nevin.brackettrozinsky@gmail.com</a>&gt; wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="gmail_extra"><div class="gmail_quote">On Mon, Jan 15, 2018 at 11:27 PM, Xiaodi Wu <span>&lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt;</span> wrote:<br></div></div></div><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><span>On Mon, Jan 15, 2018 at 20:37 Nevin Brackett-Rozinsky &lt;<a href="mailto:nevin.brackettrozinsky@gmail.com" target="_blank">nevin.brackettrozinsky@gmail.com</a>&gt; wrote:<br></span><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div><div class="gmail_extra"><div class="gmail_quote"><br></div></div></div></blockquote></span><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div class="gmail_extra" dir="auto"><div class="gmail_quote"><div>That protocol is spelled ExpressibleByFloatLiteral, which reflects the meaning that we want and should have. The name is correct, the problem is with the implementation.</div></div></div></blockquote><div><br></div></span><div>I get that you want float literals to have semantics other than what they have. Again, that&#39;s a different conversation.</div></div></div></blockquote></div></div></div><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div></div></blockquote><div><br></div><div>It is the exact conversation I started this thread to have, so if there is any other conversation going on here then *that* is the different one. :-)</div></div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">There are two distinct questions here:<br></div><div dir="auto"><br></div><div dir="auto">- Your original questions to the list. Rephrased: Is it an implementation bug that FloatingPoint does not refine ExpressibleByFloatLiteral? Can FloatingPoint, with its current semantics, refine ExpressibleByFloatLiteral, with its current semantics? The answer is: no and no.</div><div dir="auto"><br></div><div dir="auto">- Can we change the semantics? Maybe, but I doubt ExpressibleByFloatLiteral can be outright replaced. You&#39;re not the first to wonder about how to design an alternative protocol. Dig through the archives and you&#39;ll find some existing ideas. My two cents: The main alternative base in question here is 10. However, decimal storage formats and binary storage formats share so little in common that any initializer common to both will be extremely unwieldy for one or both formats. Personally, somewhere down the road, I&#39;d rather see Decimal64/128 become standard library types (already working on it), DecimalFloatingPoint become a standard library protocol, and `0.1` become a &quot;decimal literal&quot; (with Float, Double, Float80, and Decimal64/128 all conforming) as distinct from a &quot;float literal&quot; that we could then restrict to hexadecimal (?and binary) floating-point literals (and maybe rename accordingly).</div><div dir="auto"><br></div></div></div>