title: Generic Numeric division
body: <p>As a general rule, we can take any value of any number type, and divide it by any non-zero value of any number type, and get a reasonable result.</p>
  
  <pre><code>212.7 / 6   // Double = 35.449999999999996
  77L / 2.1F  // Float = 36.666668
  </code></pre>
  
  <p>The one exception, that I've found, is that we can't mix a <code>BigInt</code> with a fractional type (<code>Float</code> or <code>Double</code>).</p>
  
  <p>In the realm of generics, however, there's this interesting distinction between <code>Integral</code> and <code>Fractional</code> types.</p>
  
  <pre><code>// can do this
  def divideI[I](a: I, b: I)(implicit ev: Integral[I])   = ev.quot(a,b)
  
  // or this
  def divideF[F](a: F, b: F)(implicit ev: Fractional[F]) = ev.div(a,b)
  
  // but not this
  def divideN[N](a: N, b: N)(implicit ev: Numeric[N])    = ev.???(a,b)
  </code></pre>
  
  <p>While I <em>am</em> curious as to why this is, the real question is: Is there some kind of workaround available to sidestep this limitation?</p>