val myList = List("foo") val myFun: (String) => EitherT[Future, Exception, Int] = (in: String) => EitherT { Future { try { \/-(in.toInt) } catch { case NonFatal(e: Exception) => -\/(e) } }} // Regular traverse Traverse[List].traverse[({type G[A]=EitherT[Future,Exception,A]})#G, String, Int](myList)(myFun) // TraverseU to the rescue! Traverse[List].traverseU(myList)(myFun) // Pimpin' to the rescue! myList.traverseU(myFun)