// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_PARAMETER // WITH_STDLIB fun List>.flatten(): List = flatMap { it.fold(::emptyList, ::listOf) } class Option { fun fold(ifEmpty: () -> R, ifSome: (T) -> R): R = TODO() }