title: Where are the implicit conversions between Numeric and Double defined in Scala 2.9
body: <p>I've been working on some scala code that was compiling fine, but somehow I've broken the implicit conversions and I can't work out what I've done wrong. Boiling it down to a very simple case, this code doesn't compile and the reason seems to be that I'm not importing the implicit conversions between Double and Numeric[Double]:</p>
  
  <pre><code>import scala.math.Numeric
  import scala.math.Numeric._
  import scala.math.Numeric.Implicits._
  import Ordering.Implicits._
  
  object ImplicitNumericConversions {
    val v: Numeric[Double] = 3.0
  }
  </code></pre>
  
  <p>I can fix this easily enough by providing my own function:</p>
  
  <pre><code>import scala.math.Numeric
  
  object ImplicitNumericConversions {
    def convertDoubleToNumeric(d: Double)(implicit num: Numeric[Double]): Numeric[Double] = num
  
    val v: Numeric[Double] = convertDoubleToNumeric(3.0)
  }
  </code></pre>
  
  <p>If I make the conversion function implicit then I get what I'm looking for:</p>
  
  <pre><code>import scala.math.Numeric
  
  object ImplicitNumericConversions {
  
    implicit def convertDoubleToNumeric(d: Double)(implicit num: Numeric[Double]): Numeric[Double] = num
  
    val v: Numeric[Double] = 3.0
  }
  </code></pre>
  
  <p>... but why don't the imports from scala.math.Numeric do this for me?</p>
  
  <p>The actual problem that I'm working on looks like this:</p>
  
  <pre><code>class NumericRange[T &lt;% Numeric[T]](val lower: T, val upper: T) { ... }
  
  object NumericRange {
  
    def apply[T](lower: T, upper: T)(implicit num: Numeric[T]) = {
      import num._
      new NumericRange[T](lower, upper)
    }
  }
  </code></pre>
  
  <p>... where the line creating the new NumericRange does not compile with these errors:</p>
  
  <pre><code>Multiple markers at this line
      - No implicit view available from T =&gt; scala.math.Numeric[T].
      - not enough arguments for constructor NumericRange: (implicit evidence$1: T =&gt; scala.math.Numeric[T])org.reductio.rtree.NumericRange[T]. Unspecified value parameter 
       evidence$1.
      - not enough arguments for constructor NumericRange: (implicit evidence$1: T =&gt; scala.math.Numeric[T])org.reductio.rtree.NumericRange[T]. Unspecified value parameter 
       evidence$1.
      - No implicit view available from T =&gt; scala.math.Numeric[T].
  </code></pre>