Data looks like this

```
    class Person (
        var id:Int, 
        var name:String
    )
    class Option (
        var level:Int
    )
    val p1 = Person(1, "A")
    val p2 = Person(2, "B")
    val opt1 = Option((0..1000).random())
    val opt2 = Option((0..1000).random())
    val opt3 = Option((0..1000).random())
    val opt4 = Option((0..1000).random())

    val arr = listOf(
        listOf(p1,p2,opt1), 
        listOf(p1,p2,opt2), 
        listOf(p1,p2,opt3), 
        listOf(p2,p1,opt4)
    )

```

I would like to get "A" and "B" as unique values of name.

It's easy if collection looks like this:

```
val simple = listOf(p1,p2,p2,p1).distinctBy{it.name}
simple.forEach {
    println(it.name)
}

```