<div>You&#39;re quite right. Since the multiplicative inverse of any integer other than 1 and -1 is not itself an integer, there isn&#39;t much one can do...</div><div><br></div><div><br><div class="gmail_quote"><div>On Sun, Jan 15, 2017 at 08:41 Dave Abrahams &lt;<a href="mailto:dabrahams@apple.com">dabrahams@apple.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="gmail_msg"><br>on Sun Jan 15 2017, Xiaodi Wu &lt;<a href="http://xiaodi.wu-AT-gmail.com" rel="noreferrer" class="gmail_msg" target="_blank">xiaodi.wu-AT-gmail.com</a>&gt; wrote:<br class="gmail_msg"><br><br class="gmail_msg"><br>&gt; Given that Arithmetic also provides for multiplication and division, might<br class="gmail_msg"><br>&gt; it be wise then also to have .multiplicativeIdentity (or .one)?<br class="gmail_msg"><br><br class="gmail_msg"><br>I&#39;m always wary of adding requirements that don&#39;t have a demonstrated<br class="gmail_msg"><br>use-case in a generic algorithm.  What generic algorithm can use this<br class="gmail_msg"><br>value?<br class="gmail_msg"><br>&gt;<br class="gmail_msg"><br>&gt; On Sun, Jan 15, 2017 at 02:47 Dave Abrahams via swift-evolution &lt;<br class="gmail_msg"><br>&gt; <a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br class="gmail_msg"><br>&gt;<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt; on Sat Jan 14 2017, Dave Abrahams &lt;<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt; &gt; That said, the ability to interpret integer literals as an arbitrary<br class="gmail_msg"><br>&gt;&gt; &gt; Arithmetic isn&#39;t used anywhere in the standard library, so I&#39;d like to<br class="gmail_msg"><br>&gt;&gt; &gt; consider undoing<br class="gmail_msg"><br>&gt;&gt; &gt;<br class="gmail_msg"><br>&gt;&gt; <a href="https://github.com/apple/swift/commit/de5b03ddc41be9c5ca5e15d5709eb2be069286c1" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/apple/swift/commit/de5b03ddc41be9c5ca5e15d5709eb2be069286c1</a><br class="gmail_msg"><br>&gt;&gt; &gt; and moving ExpressibleByIntegerLiteral down the protocol hierarchy to<br class="gmail_msg"><br>&gt;&gt; &gt; BinaryInteger.<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt; Oh, and I meant to add: maybe the right way for an arbitrary X modeling<br class="gmail_msg"><br>&gt;&gt; Arithmetic to spell zero (which is needed for negation) is something<br class="gmail_msg"><br>&gt;&gt; like<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt;    X.additiveIdentity<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt; or<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt;    X.zero<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt; in other words, via a requirement<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt;    static var theNameWeChoose: Self { get }<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt; --<br class="gmail_msg"><br>&gt;&gt; -Dave<br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br>&gt;&gt; _______________________________________________<br class="gmail_msg"><br>&gt;&gt; swift-evolution mailing list<br class="gmail_msg"><br>&gt;&gt; <a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail_msg"><br>&gt;&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="gmail_msg"><br>&gt;&gt;<br class="gmail_msg"><br><br class="gmail_msg"><br>--<br class="gmail_msg"><br>-Dave<br class="gmail_msg"><br></blockquote></div></div>