sequence
peut être très simple comme traversant la fonction d'identité - IE dans Haskell:
sequence = traverse id
Ou dans Scalaz 6 (à partir de votre deuxième lien ci-dessus), le beaucoup plus verbeux:
def sequence[N[_], B](implicit
a: A <:< N[B],
t: Traverse[M],
n: Applicative[N]
): N[M[B]] = traverse((z: A) => (z: N[B]))
Alors oui, tout type avec une instance traversable peut être séquencé (et il n'a même pas besoin d'être une monade).