DO NOT MERGE: repeat evaluation with Streaming.memoize #662
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.
This is a potential bug report and is not meant to be merged in its
current form.
This test fails. It attempts to check that if a
Streaming
instance iscreated via
.memoize
, then its elements won't be evaluated multipletimes (such as when
.toList
is called).One could argue that this is a bogus test case, since side effects
should be tracked in a type other than
Unit
. However, I believe thatthis means that we might be evaluating arguments overly-eagerly, which
is a problem in itself.
I made a naive attempt at fixing this by making
Streaming.map
a littlelazier in the
Cons
case, but that didn't seem to do the trick.@non do you have any thoughts?