Scala has the trait Iterable[A] that defines
Iterable[A]
def flatMap[B](f: (A) ⇒ GenTraversableOnce[B]): Iterable[B]
That certainly looks
Scala collection methods flatMap and flatten are more powerful than monadic flatMap/flatten. See here: https://www.slideshare.net/pjschwarz/scala-collection-methods-flatmap-and-flatten-are-more-powerful-than-monadic-flatmap-and-flatten