Reputation: 115
Given
data Person = Person { _name :: String }
makeClassy ''Person
which creates a
name :: Lens' Person String
I can define the following lens which uses name
inside a tuple.
sndPerson :: Lens' (a, Person) (a, String)
sndPerson = lens
(\(a, p) -> (a, p ^. name))
(\(_, p) (a, n) -> (a, p & name .~ n))
Is there a nicer/canonical way to define sndPerson
above?
Upvotes: 4
Views: 735