<div dir="ltr">With Swift 4 out, I’ve started using the numeric protocols quite a bit, and they are great!<div><br></div><div>One thing I find myself wishing for is a protocol that extends Numeric while also allowing division—a Field protocol, if you will. I have implemented several algorithms generically over FloatingPoint because they need division, which means they aren’t available for, eg., a Rational type.</div><div><br></div><div>Absent a Field protocol in the standard library, I can create one of my own:<br><div><br></div><div><div><font face="monospace, monospace">protocol Field: Numeric {</font></div><div><font face="monospace, monospace">  static func / (lhs: Self, rhs: Self) -&gt; Self</font></div><div><font face="monospace, monospace">}</font></div></div><div><br></div><div>And I can extend Float and Double and Float80 to conform easily enough. However, I’d really like to write,</div></div><div><br></div><div><font face="monospace, monospace">extension FloatingPoint: Field {}</font></div><div><br></div><div>and make every type which conforms to FloatingPoint (such as a third-party Complex type), also conform to Field.</div><div><br></div><div>Is this potentially feasible? Would other people find it useful?</div><div><br></div><div>Nevin</div></div>