
Actually, a lens is overkill. Any traversal will do.
On Tue, Dec 20, 2022, 12:43 PM David Feuer
That's nice and clean, but it leaves a thunk inside (since the field is lazy). Is there a strict version of `over` that avoids this? We could write one thus:
over' :: ALens s t a b -> (a -> b) -> s -> t over' l f = getSolo . cloneLens l (\old -> Solo $! f old) where getSolo (Solo x) = x
On Tue, Dec 20, 2022, 11:33 AM Tom Ellis < tom-lists-haskell-cafe-2017@jaguarpaw.co.uk> wrote:
On Tue, Dec 20, 2022 at 05:25:35PM +0100, PICCA Frederic-Emmanuel wrote:
Please clarify your question. Your code doesn't compile, and I can't tell what it's supposed to do.
replace a (Maybe a) value in a data using lens only if the new (Maybe a) is a Just
How about
over a (mb <|>)
?
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.