sequence
Kann sehr einfach als Traversal mit der Identitätsfunktion definiert werden - Iie in Haskell:
sequence = traverse id
Oder in Scalaz 6 (aus Ihrem zweiten Link oben), desto wesentlich mehr ausführlicher:
def sequence[N[_], B](implicit
a: A <:< N[B],
t: Traverse[M],
n: Applicative[N]
): N[M[B]] = traverse((z: A) => (z: N[B]))
Ja, jeder Typ mit einer durchlaufbaren Instanz kann sequenziert werden (und es muss nicht einmal ein Monad sein).