Por que a Validação não é uma Mônada? (scalaz7)

um caso de uso de exemplo:

def div2(i: Int): Validation[String, Int] = 
    if (i%2 == 0) Validation.success(i/2)
    else Validation.failure("odd")

def div4(i: Int) = for {
    a <- div2(i)
    b <- div2(a)
} yield b

erro: Não é possível aplicar o tiposcalaz.Validation[String,Int] em um tipo construtor de tipoM[_] que é classificado pela classe de tiposcalaz.Bind

I acho o erro é causado pelo compilador não pode encontrar umMonad exemplo paraValidation[String, Int]

Eu posso fazer um para mim, como:

object Instances {
implicit def validationMonad[E] = new Monad[({type L[A] = Validation[E, A]})#L] {
    override def point[A](a: => A) =
        Validation.success(a)
    override def bind[A, B](fa: Validation[E, A])(f: A => Validation[E, B]) =
        fa bind f
}
}

mas porque não fazValidation já tem? depois de tudo,Validation já tem obind método definido.

Além disso, eu não posso terimport Validation._ eimport Instances._ juntos (isso me levou muito tempo para descobrir ...), por causa de outrocomplicado erro...
valores implícitos ambíguos: algo como ambosvalidationMonad (minha instância) e métodoValidationInstances1 em traçoValidationInstances2... ambos combinam algunsFunctor of Validation...

devo modificar a fonte de scalaz? ou eu estou completamente perdendo alguma coisa ~?
por favor ajude ~

Estou usando o scalaz 7.0.0-M2

questionAnswers(2)

yourAnswerToTheQuestion