Implicit that adds some syntactic sugar if our lens watches a Map[_, _].
Implicit that adds some syntactic sugar if our lens watches an Option[_].
Implicit that adds some syntactic sugar if our lens watches a Seq-like collection.
Implicit that adds some syntactic sugar if our lens watches a Set-like collection.
This is the unit lens, with respect to the compose operation defined above.
This is the unit lens, with respect to the compose operation defined above. That is, len.compose(unit) == len == unit.compose(len)
More practically, you can view it as a len that mutates the entire object, instead of just a field of it: get() gives the original object, and set() returns the assigned value, no matter what the original value was.