Skip to content

[Repo Assist] feat: add TaskSeq.zip4 (53 tests) - #326

Closed
github-actions[bot] wants to merge 2 commits into
mainfrom
repo-assist/fix-issue-zip4-2026-03-8025882dd2160dde
Closed

[Repo Assist] feat: add TaskSeq.zip4 (53 tests)#326
github-actions[bot] wants to merge 2 commits into
mainfrom
repo-assist/fix-issue-zip4-2026-03-8025882dd2160dde

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

🤖 This is a draft PR from Repo Assist, an automated AI assistant.

What changed

Implements TaskSeq.zip4, which combines four task sequences into a task sequence of 4-tuples. The four sequences need not have equal lengths — when one sequence is exhausted any remaining elements in the other sequences are ignored.

TaskSeq.zip4 : TaskSeq<'T1>-> TaskSeq<'T2>-> TaskSeq<'T3>-> TaskSeq<'T4>-> TaskSeq<'T1 * 'T2 * 'T3 * 'T4>
```
This follows the exact same pattern as the existing `zip` and `zip3` functions. It was listed in the README roadmap table without a ✅.
## Files changed- `TaskSeqInternal.fs` — `zip4` implementation (mirrors `zip3`)- `TaskSeq.fs` public static member wrapper- `TaskSeq.fsi` XML-documented signature- `TaskSeq.Zip.Tests.fs` 53 new tests covering null checks,empty variants,immutable sequences,side effects,unequal lengths,mixed types,andsingleton sequences- `README.md` marks `zip4` as implemented ()- `release-notes.txt` updated
## Test StatusBuild and full test suite verified:
```
Build succeeded.0 Warning(s)0 Error(s)Passed!-Failed:0,Passed:4590,Skipped:2,Total:4592

Formatting verified with dotnet fantomas . --check — no issues.

Trade-offs / Notes

  • zip4 is a natural extension of zip3 with no design ambiguity.
  • No Seq.zip4 exists in F# Core, so this is a TaskSeq-specific addition (as already indicated in the README roadmap table).
  • The implementation is pure streaming with no materialisation; it advances all four enumerators in lockstep.

Generated by Repo Assist ·

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/repo-assist.md@346204513ecfa08b81566450d7d599556807389f

Adds TaskSeq.zip4 which combines four task sequences into a task
sequence of 4-tuples, truncating to the shortest source sequence.
This follows the same pattern as the existing zip and zip3 functions.
Files changed:
- TaskSeqInternal.fs: zip4 implementation
- TaskSeq.fs: public static member wrapper
- TaskSeq.fsi: XML-documented signature
- TaskSeq.Zip.Tests.fs: 53 new tests (null checks, empty variants,
immutable, side effects, unequal lengths, mixed types)
- README.md: marks zip4 as implemented
- release-notes.txt: updated
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@dsyme