Scala PartialFunction может быть Monoid?

Я думал, что PartialFunction может быть Monoid . Правильно ли мой мыслительный процесс? Например,

import scalaz._
import scala.{PartialFunction => -->}

implicit def partialFunctionSemigroup[A,B]:Semigroup[A-->B] = new Semigroup[A-->B]{
  def append(s1: A-->B, s2: => A-->B): A-->B = s1.orElse(s2)
}

implicit def partialFunctionZero[A,B]:Zero[A-->B] = new Zero[A-->B]{
  val zero = new (A-->B){
    def isDefinedAt(a:A) = false
    def apply(a:A) = sys.error("error")
  }
}

Но текущая версия Scalaz (6.0.4) его не включает. Есть причина, по которой что-то не включено?

14
задан Kenji Yoshida 30 January 2012 в 17:18
поделиться