Я пытаюсь реализовать некоторый тип номера, и я попал в проблему, которая
mynum * 1
работает, но не
1 * mynum
Я попытался определить неявное преобразование, подобное этому
case class Num(v: Int) {
  def * (o: Int) = new Num(v*o)
}
implicit def int2Num(v: Int) = Num(v)
но это не похоже на работу, потому что я всегда получаю следующую ошибку:
scala> 1 * new Num(2)
<console>:14: error: overloaded method value * with alternatives:
  (x: Double)Double <and>
  (x: Float)Float <and>
  (x: Long)Long <and>
  (x: Int)Int <and>
  (x: Char)Int <and>
  (x: Short)Int <and>
  (x: Byte)Int
 cannot be applied to (Num)
              1 * new Num(2)
                ^
С другой стороны,
1 * BigInt(1)
работает, поэтому должен быть способ, хотя я не мог идентифицировать решение при просмотре кода.
Какой механизм заставить его работать?
EDIT: Я создал новый вопрос с фактической проблемой, которую я ударил, Почему неявное преобразование, не рассматриваемое в этом случае с помощью общих параметров?.
