Why does Lens exist? Well, Haskell records suck, for a number of reasons. I will enumerate them using this sample record.
data User = User { login :: Text
, password :: ByteString
, email :: Text
, created :: UTCTime
}