Skip to content

Add valueTaskValueOption CE for ValueTask<'T voption> computation expressions#348

Merged
TheAngryByrd merged 4 commits into
masterfrom
copilot/add-taskvalueoption-variant
Feb 25, 2026
Merged

Add valueTaskValueOption CE for ValueTask<'T voption> computation expressions#348
TheAngryByrd merged 4 commits into
masterfrom
copilot/add-taskvalueoption-variant

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 24, 2026

  • Create ValueTaskValueOption.fs with utility functions in src/FsToolkit.ErrorHandling/
  • Create ValueTaskValueOptionCE.fs with computation expression builder (returning ValueTask<'T voption>) in src/FsToolkit.ErrorHandling/
  • Create ValueTaskValueOptionOp.fs with operators in src/FsToolkit.ErrorHandling/
  • Update FsToolkit.ErrorHandling.fsproj to include new files
  • Create test file ValueTaskValueOptionCE.fs in tests/FsToolkit.ErrorHandling.Tests/
  • Update FsToolkit.ErrorHandling.Tests.fsproj to include new test file
  • Update Main.fs to include new tests
  • Run tests to verify (40 new tests pass)
  • Add gitbook documentation (valueTaskValueOption/ce.md, map.md, bind.md, apply.md, either.md, zip.md, others.md) and update SUMMARY.md
  • Code review and security scan
Original prompt

This section details on the original issue you should resolve

<issue_title>Add taskValueOption and valueTaskValueOption CEs</issue_title>
<issue_description>Is your feature request related to a problem?
taskOption CE exists but taskValueOption does not

Describe the solution you'd like
Add taskValueOption and valueTaskValueOption CEs
</issue_description>

<agent_instructions>- Make sure you've added tests and they pass

  • Make sure you've added documentation and doc comments</agent_instructions>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits February 24, 2026 20:01
…sion)

Co-authored-by: TheAngryByrd <1490044+TheAngryByrd@users.noreply.github.com>
Co-authored-by: TheAngryByrd <1490044+TheAngryByrd@users.noreply.github.com>
Copilot AI changed the title [WIP] Add taskValueOption and valueTaskValueOption CEs Add valueTaskValueOption CE for ValueTask<'T voption> computation expressions Feb 24, 2026
Copilot AI requested a review from TheAngryByrd February 24, 2026 20:07
@TheAngryByrd
Copy link
Copy Markdown
Collaborator

@copilot this is missing docs under gitbook

Co-authored-by: TheAngryByrd <1490044+TheAngryByrd@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Feb 24, 2026

@copilot this is missing docs under gitbook

Added gitbook docs in commit 155fec2 — created gitbook/valueTaskValueOption/ with ce.md, map.md, bind.md, apply.md, either.md, zip.md, and others.md, and registered them in SUMMARY.md.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new valueTaskValueOption computation expression to FsToolkit.ErrorHandling, enabling ergonomic composition of ValueTask<'T voption> workflows in the same style as existing taskValueOption and related builders.

Changes:

  • Introduces ValueTaskValueOption utility functions (map, bind, apply, zip, either, defaultValue, defaultWith) plus operator helpers.
  • Adds the valueTaskValueOption computation expression builder (state-machine-based) for ValueTask<'T voption>.
  • Adds comprehensive unit tests and GitBook documentation for the new API surface.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/FsToolkit.ErrorHandling/ValueTaskValueOption.fs New utility functions for working with ValueTask<'T voption>.
src/FsToolkit.ErrorHandling/ValueTaskValueOptionCE.fs New computation expression builder for ValueTask<'T voption> (including and!/applicative support).
src/FsToolkit.ErrorHandling/ValueTaskValueOptionOp.fs Adds operators (<!>, <*>, >>=) for ValueTaskValueOption.
src/FsToolkit.ErrorHandling/FsToolkit.ErrorHandling.fsproj Includes the new source files in the build (non-Fable).
tests/FsToolkit.ErrorHandling.Tests/ValueTaskValueOptionCE.fs Adds CE behavior tests mirroring existing CE test coverage patterns.
tests/FsToolkit.ErrorHandling.Tests/FsToolkit.ErrorHandling.Tests.fsproj Includes the new test file (non-Fable).
tests/FsToolkit.ErrorHandling.Tests/Main.fs Registers the new test suite in the aggregate test list.
gitbook/valueTaskValueOption/*.md Adds end-user documentation pages for the new ValueTaskValueOption module and CE.
gitbook/SUMMARY.md Adds the new ValueTaskValueOption section to GitBook navigation.

@TheAngryByrd TheAngryByrd merged commit ff1f64f into master Feb 25, 2026
30 checks passed
TheAngryByrd added a commit that referenced this pull request Feb 27, 2026
- [Add IAsyncEnumerable support to task computation expressions](#347) Credits @Copilot
- [Add `valueTaskValueOption` CE for `ValueTask<'T voption>` computation expressions](#348) Credits @Copilot
- [Add `cancellableValueTaskOption` and `cancellableValueTaskResult` CEs for IcedTasks](#349) Credits @Copilot
- [Add `Source` overloads to `taskResultOption` CE for interop with `Result`, `TaskResult`, `Option`, `Task`, and `Async`](#351) Credits @Copilot
- [Add `requireSomeWith` and `requireNoneWith` for lazy error evaluation](#352) Credits @Copilot
- [Add `TaskResult.ofCatchTask`](#353) Credits @Copilot
- [Add comprehensive gitbook documentation for all public API surface](#354) Credits @Copilot
TheAngryByrd added a commit that referenced this pull request Feb 27, 2026
- [Add IAsyncEnumerable support to task computation expressions](#347) Credits @Copilot
- [Add `valueTaskValueOption` CE for `ValueTask<'T voption>` computation expressions](#348) Credits @Copilot
- [Add `cancellableValueTaskOption` and `cancellableValueTaskResult` CEs for IcedTasks](#349) Credits @Copilot
- [Add `Source` overloads to `taskResultOption` CE for interop with `Result`, `TaskResult`, `Option`, `Task`, and `Async`](#351) Credits @Copilot
- [Add `requireSomeWith` and `requireNoneWith` for lazy error evaluation](#352) Credits @Copilot
- [Add `TaskResult.ofCatchTask`](#353) Credits @Copilot
- [Add comprehensive gitbook documentation for all public API surface](#354) Credits @Copilot
TheAngryByrd added a commit that referenced this pull request Feb 27, 2026
- [Add IAsyncEnumerable support to task computation expressions](#347) Credits @Copilot
- [Add `valueTaskValueOption` CE for `ValueTask<'T voption>` computation expressions](#348) Credits @Copilot
- [Add `cancellableValueTaskOption` and `cancellableValueTaskResult` CEs for IcedTasks](#349) Credits @Copilot
- [Add `Source` overloads to `taskResultOption` CE for interop with `Result`, `TaskResult`, `Option`, `Task`, and `Async`](#351) Credits @Copilot
- [Add `requireSomeWith` and `requireNoneWith` for lazy error evaluation](#352) Credits @Copilot
- [Add `TaskResult.ofCatchTask`](#353) Credits @Copilot
- [Add comprehensive gitbook documentation for all public API surface](#354) Credits @Copilot

Remove AutoGPT subproject reference
TheAngryByrd added a commit that referenced this pull request Feb 27, 2026
- [Add IAsyncEnumerable support to task computation expressions](#347) Credits @Copilot
- [Add `valueTaskValueOption` CE for `ValueTask<'T voption>` computation expressions](#348) Credits @Copilot
- [Add `cancellableValueTaskOption` and `cancellableValueTaskResult` CEs for IcedTasks](#349) Credits @Copilot
- [Add `Source` overloads to `taskResultOption` CE for interop with `Result`, `TaskResult`, `Option`, `Task`, and `Async`](#351) Credits @Copilot
- [Add `requireSomeWith` and `requireNoneWith` for lazy error evaluation](#352) Credits @Copilot
- [Add `TaskResult.ofCatchTask`](#353) Credits @Copilot
- [Add comprehensive gitbook documentation for all public API surface](#354) Credits @Copilot

Remove AutoGPT subproject reference
TheAngryByrd added a commit that referenced this pull request Feb 27, 2026
- [Add IAsyncEnumerable support to task computation expressions](#347) Credits @Copilot
- [Add `valueTaskValueOption` CE for `ValueTask<'T voption>` computation expressions](#348) Credits @Copilot
- [Add `cancellableValueTaskOption` and `cancellableValueTaskResult` CEs for IcedTasks](#349) Credits @Copilot
- [Add `Source` overloads to `taskResultOption` CE for interop with `Result`, `TaskResult`, `Option`, `Task`, and `Async`](#351) Credits @Copilot
- [Add `requireSomeWith` and `requireNoneWith` for lazy error evaluation](#352) Credits @Copilot
- [Add `TaskResult.ofCatchTask`](#353) Credits @Copilot
- [Add comprehensive gitbook documentation for all public API surface](#354) Credits @Copilot
TheAngryByrd added a commit that referenced this pull request Feb 27, 2026
- [Add IAsyncEnumerable support to task computation expressions](#347) Credits @Copilot
- [Add `valueTaskValueOption` CE for `ValueTask<'T voption>` computation expressions](#348) Credits @Copilot
- [Add `cancellableValueTaskOption` and `cancellableValueTaskResult` CEs for IcedTasks](#349) Credits @Copilot
- [Add `Source` overloads to `taskResultOption` CE for interop with `Result`, `TaskResult`, `Option`, `Task`, and `Async`](#351) Credits @Copilot
- [Add `requireSomeWith` and `requireNoneWith` for lazy error evaluation](#352) Credits @Copilot
- [Add `TaskResult.ofCatchTask`](#353) Credits @Copilot
- [Add comprehensive gitbook documentation for all public API surface](#354) Credits @Copilot

Remove AutoGPT subproject reference
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add taskValueOption and valueTaskValueOption CEs

3 participants