Scala: ¿cómo entender el método flatMap de Try?

El método flatMap del éxito se implementa así:

  def flatMap[U](f: T => Try[U]): Try[U] =
    try f(value)
    catch {
      case NonFatal(e) => Failure(e)
    }

Entiendo lo que está haciendo este método, nos ayuda a evitar escribir muchos códigos de captura.

Pero, ¿en qué sentido es similar al flatMap normal?

Un flatMap regular toma una secuencia de secuencias y coloca todos los elementos en una gran secuencia "plana".

Pero el método flatMap de Try no es realmente aplanar nada.

Entonces, ¿cómo entender el método flatMap de Try?

Respuestas a la pregunta(6)

Su respuesta a la pregunta