Я делаю свой первый набег на scalaz, преобразуя существующий класс для использования трейта Monoid. Чего я пытаюсь добиться, так это установить представление, привязанное к параметру типа моего класса, чтобы гарантировать, что его можно использовать только с типами, которые могут быть неявно преобразованы в моноид. Мое (упрощенное) определение класса таково:
import scalaz._
import Scalaz._
case class Foo[T <% Monoid[T]](v: T)
new Foo(42)
Компиляция этого простого примера дает ошибку компилятора:
error: No implicit view available from Int => scalaz.Monoid[Int].
Ранее эта привязка представления была определена для моей собственной пользовательской черты с неявным преобразованием из T в черту, и это работало нормально.
Чего мне не хватает сейчас, когда я преобразовал это в scalaz?
Спасибо, Крис