Use Foldable in MonadUtils and friends
This MR does three things
- generalizes the
fold
s inMonadUtils
to work over generalFoldable
s, not just[]
. - Replaces
fold*Bag
functions with theirFoldable
implementations (with specialisations forfoldl
andfoldl'
for Bag) - Replaces
foldl
s overBag
s withfoldl'
s.
This tidies some interfaces to make use of more general machinery that has been available for a while, and makes some headway on #16969 (closed) .
Thank you for your contribution to GHC!
Please take a few moments to verify that your commits fulfill the following:
-
are either individually buildable or squashed -
have commit messages which describe what they do (referring to Notes and tickets using #NNNN
syntax when appropriate) -
have added source comments describing your change. For larger changes you likely should add a Note and cross-reference it from the relevant places. -
add a testcase to the testsuite. -
replace this message with a description motivating your change
If you have any questions don't hesitate to open your merge request and inquire
in a comment. If your patch isn't quite done yet please do add prefix your MR
title with WIP:
.
Edited by Richard Lupton