@jkbbwr: In a nutshell, lenses are functional setters: you can set values deep into objects while retaining composition and immutability. You can look at them as an extension of the
copy
methods that Kotlin’s
data
classes expose. To be honest, I don’t think lenses are that interesting beyond Haskell but if you’re interested in functional concepts, they’re worth a look.