Extend Monad for folding over lists
#133
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The present PR suggests adding the following two values to
Base.Monad.S:This will provide implementations of the functions above for modules that implement
Monad.Basicsuch asOptionorResult.The function
fold_listroughly corresponds to Haskell’sfoldMofControl.Monadandmap_listtomapM(though they do not generalizelistto any type constructor of classFoldableasfoldMandmapMdo). As a special case, the newly introducedResult.fold_listcorresponds toList.fold_result.I would appreciate it if you could give any comment or suggestion.
(* PS: I couldn’t guess how to run tests and thereby don’t extend them so far. The following procedure seems promising, but it causes conflicts during the build:
(inline_tests)totest/dune,sexp_grammarfromtest/dune,opam pin add base .at the repository,core v0.15.0andexpect_test_helpers_core, anddune test.*)