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.Basic
such asOption
orResult
.The function
fold_list
roughly corresponds to Haskell’sfoldM
ofControl.Monad
andmap_list
tomapM
(though they do not generalizelist
to any type constructor of classFoldable
asfoldM
andmapM
do). As a special case, the newly introducedResult.fold_list
corresponds 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_grammar
fromtest/dune
,opam pin add base .
at the repository,core v0.15.0
andexpect_test_helpers_core
, anddune test
.*)