¿Cómo arreglar este ejercicio con envoltura endomórfica?

Este es un seguimiento de mi anteriorpregunta.

Supongamos que necesito encontrar un nodo XML por ruta. Puedo escribir una función para obtener un nodo hijo por nombre

import scala.xml.{Node => XmlNode}

def child(name: String): XmlNode = Option[XmlNode] = _.child.find(_.label == name)

Yo compongo elchild funciona con kleisli; p.ej.

scala> val a = <a><a0><a1><a2/></a1></a0></a>
a: scala.xml.Elem = <a><a0><a1><a2/></a1></a0></a>

scala> val find01 = Kleisli(child("a0")) >=> Kleisli(child("a1"))
findAB: scalaz.Kleisli[Option,scala.xml.Node,scala.xml.Node] = Kleisli(<function1>)

scala> find01(a)
res85: Option[scala.xml.Node] = Some(<a1><a2/></a1>)

Ahora estoy usando el envoltorio endomórfico pero no funciona:

 scala> List(child("a0"), child("a1")).foldMap(Endomorphic.endoKleisli[Option, XmlNode])
 res93: scalaz.Endomorphic[[α, β]scalaz.Kleisli[Option,α,β],scala.xml.Node] = Endomorphic(Kleisli(<function1>))

 scala> res93.run(a)
 res94: Option[scala.xml.Node] = None

¿Podrías ayudar a encontrar el error?

Respuestas a la pregunta(1)

Su respuesta a la pregunta