Skip to content

ValueOption parity with options #703

@cartermp

Description

@cartermp

Title of Suggestion

I propose we:

  • Add equivalent module-bound functions for ValueOption so that it has parity with regular options.
  • Add further properties to the ValueOption type to match what exists in Option
  • Add the same debugger display as options

The existing way of approaching this problem in F# is to write these functions and/or type extensions yourself.

Pros and Cons

The advantages of making this adjustment to F# are:

  • Makes ValueOption feel more first-class
  • Resolves an awkwardness where there is a lot more utility with the Option type than the ValueOption type

The disadvantages of making this adjustment to F# are:

  • It's more API surface area to build and test
  • If we ever add some way to write code that is generic over "option-shaped" types, we'll have needless code duplication

Extra information

Estimated cost (XS, S, M, L, XL, XXL): S

Related suggestion: #612

Affidavit (please submit!)

Please tick this by placing a cross in the box:

  • This is not a question (e.g. like one you might ask on stackoverflow) and I have searched stackoverflow for discussions of this issue
  • I have searched both open and closed suggestions on this site and believe this is not a duplicate
  • This is not something which has obviously "already been decided" in previous versions of F#. If you're questioning a fundamental design decision that has obviously already been taken (e.g. "Make F# untyped") then please don't submit it.

Please tick all that apply:

  • This is not a breaking change to the F# language design
  • I or my company would be willing to help implement and/or test this

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions