Argument order for Data.Map.adjustF

David Feuer david.feuer at gmail.com
Sat May 7 20:45:31 UTC 2016


I managed to find an implementation of Control.Lens.At.at for Data.Map
that's fast enough to be useful. The function will be named alterF to match
the name of Data.Map.alter. The remaining question is what order the
arguments should go in. I had thought to follow those of alter for
consistency, giving

alterF :: (Functor f, Ord k) => (Maybe a -> f (Maybe a)) -> k -> Map k a ->
f (Map k a)

Edward Kmett thinks the ergonomics of that order are terrible, and prefers
to follow lens at, giving

alterF :: (Functor f, Ord k) => k -> (Maybe a -> f (Maybe a)) -> Map k a ->
f (Map k a)

How do other people feel about this?

David Feuer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20160507/ee1a3f2e/attachment.html>


More information about the Libraries mailing list