<div dir="ltr"><div><div>Hi all,<br><br></div><div>I'm proposing that the implementations of minimumBy and maximumBy be changed from using foldl1 to foldr1.</div><div><br></div><div>I found this in a GHC trac ticket[0] labelled 'Newcomer' that has more details / discussion on that.<br><br></div><div>The points that stand out to me are:<br></div><div>- the Haskell report says that those methods should be implemented in terms of foldl1 (although as instance methods of Foldable there might be some wiggle room there)<br></div><div>- it helps solves a space leak (which at first glance feels like it might be a more common problem than the options that foldl1 removes)<br></div><div>- from the discussion on the ticket, it seemed to be an agreeable middle ground<br></div><div><br>As a side note: there have been a few proposals in the past to switch these functions to use foldl', which seemed to have stalled.  I don't know what the etiquette is around bringing up minor variations on old proposals again, so I apologise if I've breached some kind of protocol here.  <br><br>Although I guess I've already breached one protocol by pushing a  patch to Phabricator for review without getting sign-off from the Core Libraries Committee, so at least I'm being even handed with my clumsiness :)<br><br></div>Cheers,<br><br></div>Dave<br><div><div><div><br>[0] <a href="https://ghc.haskell.org/trac/ghc/ticket/10830">https://ghc.haskell.org/trac/ghc/ticket/10830</a><br><br></div></div></div></div>