Использование границ представления с помощью scalaz

Я совершаю свой первый набег на 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 в признак, и это работало нормально.

Что мне не хватает теперь, когда я преобразовал это в скалаз?

Спасибо, Крис

5
задан Chris Turner 21 September 2011 в 18:01
поделиться