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.
Builders hold on to the original collection, causing memory leaks in our use case.
In order to make persistent collections composable (to put one as an element of another) and preserve the efficiency of temporary mutability we have to compose builders, instead of persistent collections. Since we hold on to this builders for a long time, the reference to the old collection in all builders causes memory leaks.
The proposed fix is to release the reference, once the collection is changed and there is no chance to return it from build fn.