LanguageExt.Core

LanguageExt.Core Monads Alternative Value Monads Option OptionAsync

Contents

struct OptionAsyncAwaiter <A> Source #

Properties

property bool IsCompleted Source #

Methods

method A GetResult () Source #

method void OnCompleted (Action completion) Source #

struct OptionAsync <A> Source #

Discriminated union type. Can be in one of two states:

Some(a)
None

Typeclass instances available for this type:

Applicative   : ApplOptionAsync
BiFoldable    : MOptionAsync
Foldable      : MOptionAsync
Functor       : FOptionAsync
Monad         : MOptionAsync
OptionalAsync : MOptionAsync

Parameters

type A

Bound value

Fields

Properties

property ValueTask<object?> Case Source #

Reference version of option for use in pattern-matching

Some = result is ValueTask<A>
None = result is ValueTask<null>

property Task<bool> IsSome Source #

Is the option in a Some state

property Task<bool> IsNone Source #

Is the option in a None state

property Task<A?> Value Source #

Helper accessor for the bound value

Constructors

constructor OptionAsync (IEnumerable<A?> option) Source #

Ctor that facilitates serialisation

Parameters

param option

None or Some A.

Methods

method OptionAsync<A> Some (A value) Source #

Construct an OptionAsync of A in a Some state

Parameters

param value

Value to bind, must be non-null

returns

OptionAsync of A

method OptionAsync<A> SomeAsync (Task<A> value) Source #

Construct an OptionAsync of A in a Some state

Parameters

param value

Value to bind, must be non-null

returns

OptionAsync of A

method OptionAsync<A> Optional (A? value) Source #

Construct an OptionAsync of A in a Some state

Parameters

param value

Value to bind, must be non-null

returns

OptionAsync of A

method OptionAsync<A> OptionalAsync (Task<A?> value) Source #

Construct an OptionAsync of A in a Some state

Parameters

param value

Value to bind, must be non-null

returns

OptionAsync of A

method Task<bool> Equals <EqA> (OptionAsync<A> rhs) Source #

where EqA : struct, EqAsync<A>

Equality operator

method bool Equals (object _) Source #

Equality operator

method Task<bool> Equals (OptionAsync<A> rhs) Source #

Equality operator

method Task<int> CompareTo <OrdA> (OptionAsync<A> rhs) Source #

where OrdA : struct, Ord<A>

Ordering

method Task<int> CompareTo (OptionAsync<A> rhs) Source #

Ordering

method int GetHashCode () Source #

Calculate the hash-code from the bound value, unless the Option is in a None state, in which case the hash-code will be 0

Parameters

returns

Hash-code from the bound value, unless the Option is in a None state, in which case the hash-code will be 0

method Task<int> GetHashCodeAsync () Source #

Calculate the hash-code from the bound value, unless the Option is in a None state, in which case the hash-code will be 0

Parameters

returns

Hash-code from the bound value, unless the Option is in a None state, in which case the hash-code will be 0

method string ToString () Source #

Get a string representation of the Option

Parameters

returns

String representation of the Option

method Task<string> ToStringAsync () Source #

Get a string representation of the Option

Parameters

returns

String representation of the Option

method OptionAsync<A> Do (Action<A> f) Source #

Impure iteration of the bound value in the structure

Parameters

returns

Returns the original unmodified structure

method OptionAsync<B> Select <B> (Func<A, B> f) Source #

Projection from one value to another

Parameters

type B

Resulting functor value type

param f

Projection function

returns

Mapped functor

method OptionAsync<B> Map <B> (Func<A, B> f) Source #

Projection from one value to another

Parameters

type B

Resulting functor value type

param f

Projection function

returns

Mapped functor

method OptionAsync<B> MapAsync <B> (Func<A, Task<B>> f) Source #

Projection from one value to another

Parameters

type B

Resulting functor value type

param f

Projection function

returns

Mapped functor

method OptionAsync<B> Bind <B> (Func<A, OptionAsync<B>> f) Source #

Monad bind operation

method OptionAsync<B> BindAsync <B> (Func<A, Task<OptionAsync<B>>> f) Source #

Monad bind operation

method OptionAsync<C> SelectMany <B, C> ( Func<A, OptionAsync<B>> bind, Func<A, B, C> project) Source #

Monad bind operation

method Task<R> MatchUntyped <R> (Func<object, R> Some, Func<R> None) Source #

Match operation with an untyped value for Some. This can be useful for serialisation and dealing with the IOptional interface

Parameters

type R

The return type

param Some

Operation to perform if the option is in a Some state

param None

Operation to perform if the option is in a None state

returns

The result of the match operation

method Task<R> MatchUntyped <R> (Func<object, Task<R>> Some, Func<R> None) Source #

Match operation with an untyped value for Some. This can be useful for serialisation and dealing with the IOptional interface

Parameters

type R

The return type

param Some

Operation to perform if the option is in a Some state

param None

Operation to perform if the option is in a None state

returns

The result of the match operation

method Task<R> MatchUntypedAsync <R> (Func<object, R> Some, Func<Task<R>> None) Source #

Match operation with an untyped value for Some. This can be useful for serialisation and dealing with the IOptional interface

Parameters

type R

The return type

param Some

Operation to perform if the option is in a Some state

param None

Operation to perform if the option is in a None state

returns

The result of the match operation

method Task<R> MatchUntypedAsync <R> (Func<object, Task<R>> Some, Func<Task<R>> None) Source #

Match operation with an untyped value for Some. This can be useful for serialisation and dealing with the IOptional interface

Parameters

type R

The return type

param Some

Operation to perform if the option is in a Some state

param None

Operation to perform if the option is in a None state

returns

The result of the match operation

method Type GetUnderlyingType () Source #

Get the Type of the bound value

Parameters

returns

Type of the bound value

method Task<Arr<A>> ToArray () Source #

Convert the Option to an enumerable of zero or one items

Parameters

returns

An enumerable of zero or one items

method Task<Lst<A>> ToList () Source #

Convert the Option to an immutable list of zero or one items

Parameters

returns

An immutable list of zero or one items

method Task<Seq<A>> ToSeq () Source #

Convert the Option to an enumerable sequence of zero or one items

Parameters

returns

An enumerable sequence of zero or one items

method Task<IEnumerable<A>> AsEnumerable () Source #

Convert the Option to an enumerable of zero or one items

Parameters

returns

An enumerable of zero or one items

method Aff<A> ToAff () Source #

Convert the structure to an Aff

Parameters

returns

An Aff representation of the structure

method Aff<A> ToAff (Error Fail) Source #

Convert the structure to an Aff

Parameters

param Fail

Default value if the structure is in a None state

returns

An Aff representation of the structure

method EitherAsync<L, A> ToEither <L> (L defaultLeftValue) Source #

Convert the structure to an Either

Parameters

param defaultLeftValue

Default value if the structure is in a None state

returns

An Either representation of the structure

method EitherAsync<L, A> ToEither <L> (Func<L> Left) Source #

Convert the structure to an Either

Parameters

param defaultLeftValue

Function to invoke to get a default value if the structure is in a None state

returns

An Either representation of the structure

method Task<EitherUnsafe<L, A>> ToEitherUnsafe <L> (L defaultLeftValue) Source #

Convert the structure to an EitherUnsafe

Parameters

param defaultLeftValue

Default value if the structure is in a None state

returns

An EitherUnsafe representation of the structure

method Task<EitherUnsafe<L, A>> ToEitherUnsafe <L> (Func<L> Left) Source #

Convert the structure to an EitherUnsafe

Parameters

param defaultLeftValue

Function to invoke to get a default value if the structure is in a None state

returns

An EitherUnsafe representation of the structure

method Task<Option<A>> ToOption () Source #

Convert the structure to a Option

Parameters

returns

An Option representation of the structure

method Task<OptionUnsafe<A>> ToOptionUnsafe () Source #

Convert the structure to a OptionUnsafe

Parameters

returns

An OptionUnsafe representation of the structure

method TryOptionAsync<A> ToTryOption () Source #

Convert the structure to a TryOptionAsync

Parameters

returns

A TryOptionAsync representation of the structure

method TryAsync<A> ToTry () Source #

Convert the structure to a TryAsync

Parameters

returns

A TryAsync representation of the structure

method SomeAsyncUnitContext<MOptionAsync<A>, OptionAsync<A>, A> Some (Action<A> f) Source #

Fluent pattern matching. Provide a Some handler and then follow on fluently with .None(...) to complete the matching operation. This is for dispatching actions, use Some<A,B>(...) to return a value from the match operation.

Parameters

param f

The Some(x) match operation

method SomeAsyncContext<MOptionAsync<A>, OptionAsync<A>, A, B> Some <B> (Func<A, B> f) Source #

Fluent pattern matching. Provide a Some handler and then follow on fluently with .None(...) to complete the matching operation. This is for returning a value from the match operation, to dispatch an action instead, use Some(...)

Parameters

type B

Match operation return value type

param f

The Some(x) match operation

returns

The result of the match operation

method Task<B> Match <B> (Func<A, B> Some, Func<B> None) Source #

Match the two states of the Option and return a non-null R.

Parameters

type B

Return type

param Some

Some match operation. Must not return null.

param None

None match operation. Must not return null.

returns

A non-null B

method Task<B> MatchAsync <B> (Func<A, Task<B>> Some, Func<B> None) Source #

Match the two states of the Option and return a non-null R.

Parameters

type B

Return type

param Some

Some match operation. Must not return null.

param None

None match operation. Must not return null.

returns

A non-null B

method Task<B> MatchAsync <B> (Func<A, B> Some, Func<Task<B>> None) Source #

Match the two states of the Option and return a non-null R.

Parameters

type B

Return type

param Some

Some match operation. Must not return null.

param None

None match operation. Must not return null.

returns

A non-null B

method Task<B> MatchAsync <B> (Func<A, Task<B>> Some, Func<Task<B>> None) Source #

Match the two states of the Option and return a non-null R.

Parameters

type B

Return type

param Some

Some match operation. Must not return null.

param None

None match operation. Must not return null.

returns

A non-null B

method Task<B> MatchUnsafe <B> (Func<A, B> Some, Func<B> None) Source #

Match the two states of the Option and return a B, which can be null.

Parameters

type B

Return type

param Some

Some match operation. May return null.

param None

None match operation. May return null.

returns

B, or null

method Task<B> MatchUnsafeAsync <B> (Func<A, Task<B>> Some, Func<B> None) Source #

Match the two states of the Option and return a B, which can be null.

Parameters

type B

Return type

param Some

Some match operation. May return null.

param None

None match operation. May return null.

returns

B, or null

method Task<B> MatchUnsafeAsync <B> (Func<A, B> Some, Func<Task<B>> None) Source #

Match the two states of the Option and return a B, which can be null.

Parameters

type B

Return type

param Some

Some match operation. May return null.

param None

None match operation. May return null.

returns

B, or null

method Task<B> MatchUnsafeAsync <B> (Func<A, Task<B>> Some, Func<Task<B>> None) Source #

Match the two states of the Option and return a B, which can be null.

Parameters

type B

Return type

param Some

Some match operation. May return null.

param None

None match operation. May return null.

returns

B, or null

method Task<Unit> Match (Action<A> Some, Action None) Source #

Match the two states of the Option

Parameters

param Some

Some match operation

param None

None match operation

method Task<Unit> IfSome (Func<A, Task> f) Source #

Invokes the action if Option is in the Some state, otherwise nothing happens.

Parameters

param f

async Action to invoke if Option is in the Some state

method Task<Unit> IfSome (Action<A> f) Source #

Invokes the action if Option is in the Some state, otherwise nothing happens.

Parameters

param f

Action to invoke if Option is in the Some state

method Task<Unit> IfSomeAsync (Func<A, Task<Unit>> f) Source #

Invokes the f function if Option is in the Some state, otherwise nothing happens.

Parameters

param f

Function to invoke if Option is in the Some state

method Task<Unit> IfSomeAsync (Func<A, Task> f) Source #

Invokes the f function if Option is in the Some state, otherwise nothing happens.

Parameters

param f

Function to invoke if Option is in the Some state

method Task<Unit> IfSome (Func<A, Unit> f) Source #

Invokes the f function if Option is in the Some state, otherwise nothing happens.

Parameters

param f

Function to invoke if Option is in the Some state

method Task<A> IfNone (Func<A> None) Source #

Returns the result of invoking the None() operation if the optional is in a None state, otherwise the bound Some(x) value is returned.

Will not accept a null return value from the None operation

Parameters

param None

Operation to invoke if the structure is in a None state

returns

Tesult of invoking the None() operation if the optional is in a None state, otherwise the bound Some(x) value is returned.

method Task<A> IfNoneAsync (Func<Task<A>> None) Source #

Returns the result of invoking the None() operation if the optional is in a None state, otherwise the bound Some(x) value is returned.

Will not accept a null return value from the None operation

Parameters

param None

Operation to invoke if the structure is in a None state

returns

Tesult of invoking the None() operation if the optional is in a None state, otherwise the bound Some(x) value is returned.

method Task<A> IfNone (A noneValue) Source #

Returns the noneValue if the optional is in a None state, otherwise the bound Some(x) value is returned.

Will not accept a null noneValue

Parameters

param noneValue

Value to return if in a None state

returns

noneValue if the optional is in a None state, otherwise the bound Some(x) value is returned

method Task<A> IfNoneUnsafe (Func<A> None) Source #

Returns the result of invoking the None() operation if the optional is in a None state, otherwise the bound Some(x) value is returned.

Will allow null the be returned from the None operation

Parameters

param None

Operation to invoke if the structure is in a None state

returns

Tesult of invoking the None() operation if the optional is in a None state, otherwise the bound Some(x) value is returned.

method Task<A> IfNoneUnsafeAsync (Func<Task<A>> None) Source #

Returns the result of invoking the None() operation if the optional is in a None state, otherwise the bound Some(x) value is returned.

Will allow null the be returned from the None operation

Parameters

param None

Operation to invoke if the structure is in a None state

returns

Tesult of invoking the None() operation if the optional is in a None state, otherwise the bound Some(x) value is returned.

method Task<A> IfNoneUnsafe (A noneValue) Source #

Returns the noneValue if the optional is in a None state, otherwise the bound Some(x) value is returned.

Will allow noneValue to be null

Parameters

param noneValue

Value to return if in a None state

returns

noneValue if the optional is in a None state, otherwise the bound Some(x) value is returned

method Task<S> Fold <S> (S state, Func<S, A, S> folder) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param folder

Folder function, applied if Option is in a Some state

returns

The aggregate state

method Task<S> FoldAsync <S> (S state, Func<S, A, Task<S>> folder) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param folder

Folder function, applied if Option is in a Some state

returns

The aggregate state

method Task<S> FoldBack <S> (S state, Func<S, A, S> folder) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param folder

Folder function, applied if Option is in a Some state

returns

The aggregate state

method Task<S> FoldBackAsync <S> (S state, Func<S, A, Task<S>> folder) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param folder

Folder function, applied if Option is in a Some state

returns

The aggregate state

method Task<S> BiFold <S> (S state, Func<S, A, S> Some, Func<S, Unit, S> None) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if Option is in a Some state

param None

Folder function, applied if Option is in a None state

returns

The aggregate state

method Task<S> BiFold <S> (S state, Func<S, A, Task<S>> Some, Func<S, Unit, S> None) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if Option is in a Some state

param None

Folder function, applied if Option is in a None state

returns

The aggregate state

method Task<S> BiFoldAsync <S> (S state, Func<S, A, S> Some, Func<S, Unit, Task<S>> None) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if Option is in a Some state

param None

Folder function, applied if Option is in a None state

returns

The aggregate state

method Task<S> BiFoldAsync <S> (S state, Func<S, A, Task<S>> Some, Func<S, Unit, Task<S>> None) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if Option is in a Some state

param None

Folder function, applied if Option is in a None state

returns

The aggregate state

method Task<S> BiFold <S> (S state, Func<S, A, S> Some, Func<S, S> None) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if Option is in a Some state

param None

Folder function, applied if Option is in a None state

returns

The aggregate state

method Task<S> BiFoldAsync <S> (S state, Func<S, A, Task<S>> Some, Func<S, S> None) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if Option is in a Some state

param None

Folder function, applied if Option is in a None state

returns

The aggregate state

method Task<S> BiFoldAsync <S> (S state, Func<S, A, S> Some, Func<S, Task<S>> None) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if Option is in a Some state

param None

Folder function, applied if Option is in a None state

returns

The aggregate state

method Task<S> BiFoldAsync <S> (S state, Func<S, A, Task<S>> Some, Func<S, Task<S>> None) Source #

Option types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if Option is in a Some state

param None

Folder function, applied if Option is in a None state

returns

The aggregate state

method OptionAsync<B> BiMap <B> (Func<A, B> Some, Func<Unit, B> None) Source #

Projection from one value to another

Parameters

type B

Resulting functor value type

param Some

Projection function

param None

Projection function

returns

Mapped functor

method OptionAsync<B> BiMap <B> (Func<A, B> Some, Func<B> None) Source #

Projection from one value to another

Parameters

type B

Resulting functor value type

param Some

Projection function

param None

Projection function

returns

Mapped functor

method Task<int> Count () Source #

Return the number of bound values in this structure:

None = 0

Some = 1

Parameters

returns

method Task<bool> ForAll (Func<A, bool> pred) Source #

Apply a predicate to the bound value. If the Option is in a None state then True is returned (because the predicate applies for-all values). If the Option is in a Some state the value is the result of running applying the bound value to the predicate supplied.

Parameters

param pred
returns

If the Option is in a None state then True is returned (because the predicate applies for-all values). If the Option is in a Some state the value is the result of running applying the bound value to the predicate supplied.

method Task<bool> ForAllAsync (Func<A, Task<bool>> pred) Source #

Apply a predicate to the bound value. If the Option is in a None state then True is returned (because the predicate applies for-all values). If the Option is in a Some state the value is the result of running applying the bound value to the predicate supplied.

Parameters

param pred
returns

If the Option is in a None state then True is returned (because the predicate applies for-all values). If the Option is in a Some state the value is the result of running applying the bound value to the predicate supplied.

method Task<bool> BiForAll (Func<A, bool> Some, Func<Unit, bool> None) Source #

Apply a predicate to the bound value. If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param Some

Predicate to apply if in a Some state

param None

Predicate to apply if in a None state

returns

If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<bool> BiForAll (Func<A, bool> Some, Func<bool> None) Source #

Apply a predicate to the bound value. If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param Some

Predicate to apply if in a Some state

param None

Predicate to apply if in a None state

returns

If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<bool> Exists (Func<A, bool> pred) Source #

Apply a predicate to the bound value. If the Option is in a None state then False is returned. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param pred
returns

If the Option is in a None state then False is returned. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<bool> ExistsAsync (Func<A, Task<bool>> pred) Source #

Apply a predicate to the bound value. If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param pred
returns

If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<bool> BiExists (Func<A, bool> Some, Func<Unit, bool> None) Source #

Apply a predicate to the bound value. If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param pred
returns

If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<bool> BiExists (Func<A, bool> Some, Func<bool> None) Source #

Apply a predicate to the bound value. If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param pred
returns

If the Option is in a None state then True is returned if invoking None returns True. If the Option is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<Unit> Iter (Action<A> Some) Source #

Invoke an action for the bound value (if in a Some state)

Parameters

param Some

Action to invoke

method Task<Unit> Iter (Func<A, Task<Unit>> Some) Source #

Invoke an action for the bound value (if in a Some state)

Parameters

param Some

Action to invoke

method Task<Unit> BiIter (Action<A> Some, Action<Unit> None) Source #

Invoke an action depending on the state of the Option

Parameters

param Some

Action to invoke if in a Some state

param None

Action to invoke if in a None state

method Task<Unit> BiIter (Action<A> Some, Action None) Source #

Invoke an action depending on the state of the Option

Parameters

param Some

Action to invoke if in a Some state

param None

Action to invoke if in a None state

method OptionAsync<A> Filter (Func<A, bool> pred) Source #

Apply a predicate to the bound value (if in a Some state)

Parameters

param pred

Predicate to apply

returns

Some(x) if the Option is in a Some state and the predicate returns True. None otherwise.

method OptionAsync<A> FilterAsync (Func<A, Task<bool>> pred) Source #

Apply a predicate to the bound value (if in a Some state)

Parameters

param pred

Predicate to apply

returns

Some(x) if the Option is in a Some state and the predicate returns True. None otherwise.

method OptionAsync<A> Where (Func<A, bool> pred) Source #

Apply a predicate to the bound value (if in a Some state)

Parameters

param pred

Predicate to apply

returns

Some(x) if the Option is in a Some state and the predicate returns True. None otherwise.

method OptionAsync<A> Where (Func<A, Task<bool>> pred) Source #

Apply a predicate to the bound value (if in a Some state)

Parameters

param pred

Predicate to apply

returns

Some(x) if the Option is in a Some state and the predicate returns True. None otherwise.

method OptionAsync<D> Join <B, C, D> ( OptionAsync<B> inner, Func<A, C> outerKeyMap, Func<B, C> innerKeyMap, Func<A, B, D> project) Source #

Monadic join

method OptionAsync<D> Join <B, C, D> ( OptionAsync<B> inner, Func<A, C> outerKeyMap, Func<B, C> innerKeyMap, Func<A, B, Task<D>> project) Source #

Monadic join

method OptionAsync<D> Join <B, C, D> ( OptionAsync<B> inner, Func<A, Task<C>> outerKeyMap, Func<B, Task<C>> innerKeyMap, Func<A, B, Task<D>> project) Source #

Monadic join

method OptionAsync<D> Join <B, C, D> ( OptionAsync<B> inner, Func<A, Task<C>> outerKeyMap, Func<B, Task<C>> innerKeyMap, Func<A, B, D> project) Source #

Monadic join

method OptionAsync<Func<B, C>> ParMap <B, C> (Func<A, B, C> func) Source #

Partial application map

method OptionAsync<Func<B, Func<C, D>>> ParMap <B, C, D> (Func<A, B, C, D> func) Source #

Partial application map

method IAsyncEnumerator<A> GetAsyncEnumerator (CancellationToken cancellationToken = default) Source #

Enumerate asynchronously

Operators

operator | (OptionAsync<A> lhs, OptionAsync<A> rhs) Source #

Coalescing operator

Parameters

param lhs

Left hand side of the operation

param rhs

Right hand side of the operation

returns

if lhs is Some then lhs, else rhs

operator == (OptionAsync<A> lhs, OptionAsync<A> rhs) Source #

Equality operator

operator != (OptionAsync<A> lhs, OptionAsync<A> rhs) Source #

Non-equality operator

operator < (OptionAsync<A> lhs, OptionAsync<A> rhs) Source #

Ordering operator

operator <= (OptionAsync<A> lhs, OptionAsync<A> rhs) Source #

Ordering operator

operator > (OptionAsync<A> lhs, OptionAsync<A> rhs) Source #

Ordering operator

operator >= (OptionAsync<A> lhs, OptionAsync<A> rhs) Source #

Ordering operator

class OptionAsyncExtensions Source #

Extension methods for OptionAsync

Methods

method OptionAsync<A> Flatten <A> (this OptionAsync<OptionAsync<A>> ma) Source #

Monadic join

method Task<IEnumerable<A>> Somes <A> (this IEnumerable<OptionAsync<A>> self) Source #

Extracts from a list of Option all the Some elements. All the Some elements are extracted in order.

method Task<Seq<A>> Somes <A> (this Seq<OptionAsync<A>> self) Source #

Extracts from a list of OptionAsync all the Some elements. All the Some elements are extracted in order.

method OptionAsync<A> Add <ARITH, A> (this OptionAsync<A> x, OptionAsync<A> y) Source #

where ARITH : struct, Arithmetic<A>

Add the bound values of x and y, uses an Add type-class to provide the add operation for type A. For example x.Add<TInteger,int>(y)

Parameters

type ADD

Add of A

type A

Bound value type

param x

Left hand side of the operation

param y

Right hand side of the operation

returns

An option with y added to x

method OptionAsync<A> Subtract <ARITH, A> (this OptionAsync<A> x, OptionAsync<A> y) Source #

where ARITH : struct, Arithmetic<A>

Find the subtract between the two bound values of x and y, uses a Subtract type-class to provide the subtract operation for type A. For example x.Subtract<TInteger,int>(y)

Parameters

type DIFF

Subtract of A

type A

Bound value type

param x

Left hand side of the operation

param y

Right hand side of the operation

returns

An option with the subtract between x and y

method OptionAsync<A> Product <ARITH, A> (this OptionAsync<A> x, OptionAsync<A> y) Source #

where ARITH : struct, Arithmetic<A>

Find the product between the two bound values of x and y, uses a Product type-class to provide the product operation for type A. For example x.Product<TInteger,int>(y)

Parameters

type PROD

Product of A

type A

Bound value type

param x

Left hand side of the operation

param y

Right hand side of the operation

returns

An option with the product of x and y

method OptionAsync<A> Divide <NUM, A> (this OptionAsync<A> x, OptionAsync<A> y) Source #

where NUM : struct, Num<A>

Divide the two bound values of x and y, uses a Divide type-class to provide the divide operation for type A. For example x.Divide<TDouble,double>(y)

Parameters

type DIV

Divide of A

type A

Bound value type

param x

Left hand side of the operation

param y

Right hand side of the operation

returns

An option x / y

method OptionAsync<B> Apply <A, B> (this OptionAsync<Func<A, B>> fab, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type FB derived from Applicative of B

method OptionAsync<B> Apply <A, B> (this Func<A, B> fab, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type FB derived from Applicative of B

method OptionAsync<C> Apply <A, B, C> (this OptionAsync<Func<A, B, C>> fabc, OptionAsync<A> fa, OptionAsync<B> fb) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative a to apply

param fb

Applicative b to apply

returns

Applicative of type FC derived from Applicative of C

method OptionAsync<C> Apply <A, B, C> (this Func<A, B, C> fabc, OptionAsync<A> fa, OptionAsync<B> fb) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative a to apply

param fb

Applicative b to apply

returns

Applicative of type FC derived from Applicative of C

method OptionAsync<Func<B, C>> Apply <A, B, C> (this OptionAsync<Func<A, B, C>> fabc, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type f(b -> c) derived from Applicative of Func<B, C>

method OptionAsync<Func<B, C>> Apply <A, B, C> (this Func<A, B, C> fabc, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type f(b -> c) derived from Applicative of Func<B, C>

method OptionAsync<Func<B, C>> Apply <A, B, C> (this OptionAsync<Func<A, Func<B, C>>> fabc, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type f(b -> c) derived from Applicative of Func<B, C>

method OptionAsync<Func<B, C>> Apply <A, B, C> (this Func<A, Func<B, C>> fabc, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type f(b -> c) derived from Applicative of Func<B, C>

method OptionAsync<B> Action <A, B> (this OptionAsync<A> fa, OptionAsync<B> fb) Source #

Evaluate fa, then fb, ignoring the result of fa

Parameters

param fa

Applicative to evaluate first

param fb

Applicative to evaluate second and then return

returns

Applicative of type OptionAsync

method Task<A?> ToNullable <A> (this OptionAsync<A> ma) Source #

where A : struct

Convert the Option type to a Nullable of A

Parameters

type A

Type of the bound value

param ma

Option to convert

returns

Nullable of A

method Task<IEnumerable<R>> Match <T, R> (this IEnumerable<OptionAsync<T>> list, Func<T, IEnumerable<R>> Some, Func<IEnumerable<R>> None ) Source #

Match over a list of options

Parameters

type T

Type of the bound values

type R

Result type

param list

List of options to match against

param Some

Operation to perform when an Option is in the Some state

param None

Operation to perform when an Option is in the None state

returns

An enumerable of results of the match operations

method Task<IEnumerable<R>> Match <T, R> (this IEnumerable<OptionAsync<T>> list, Func<T, IEnumerable<R>> Some, IEnumerable<R> None) Source #

Match over a list of options

Parameters

type T

Type of the bound values

type R

Result type

param list

List of options to match against

param Some

Operation to perform when an Option is in the Some state

param None

Default if the list is empty

returns

An enumerable of results of the match operations

method Task<int> Sum (this OptionAsync<int> a) Source #

Sum the bound value

This is a legacy method for backwards compatibility

Parameters

param a

Option of int

returns

The bound value or 0 if None

method Task<A> Sum <NUM, A> (this OptionAsync<A> self) Source #

where NUM : struct, Num<A>

Sum the bound value

This is a legacy method for backwards compatibility

Parameters

param self

Option of A that is from the type-class NUM

returns

The bound value or 0 if None

struct OptionAsyncMethodBuilder <A> Source #

Properties

property OptionAsync<A> Task Source #

Methods

method OptionAsyncMethodBuilder<A> Create () Source #

method void Start <TStateMachine> (ref TStateMachine machine) Source #

where TStateMachine : IAsyncStateMachine

method void SetStateMachine (IAsyncStateMachine machine) Source #

method void SetException (Exception _) Source #

method void SetResult (A result) Source #

method void AwaitOnCompleted <TAwaiter, TStateMachine> (ref TAwaiter awaiter, ref TStateMachine machine) Source #

where TAwaiter : INotifyCompletion
where TStateMachine : IAsyncStateMachine

method void AwaitUnsafeOnCompleted <TAwaiter, TStateMachine> (ref TAwaiter awaiter, ref TStateMachine machine) Source #

where TAwaiter : ICriticalNotifyCompletion
where TStateMachine : IAsyncStateMachine

class Prelude Source #

Methods

method OptionAsync<A> flatten <A> (OptionAsync<OptionAsync<A>> ma) Source #

Monadic join

method OptionAsync<T> subtract <NUM, T> (OptionAsync<T> lhs, OptionAsync<T> rhs) Source #

where NUM : struct, Num<T>

Subtract the Ts

Parameters

param lhs

Left-hand side of the operation

param rhs

Right-hand side of the operation

returns

lhs - rhs

method OptionAsync<T> product <NUM, T> (OptionAsync<T> lhs, OptionAsync<T> rhs) Source #

where NUM : struct, Num<T>

method OptionAsync<T> divide <NUM, T> (OptionAsync<T> lhs, OptionAsync<T> rhs) Source #

where NUM : struct, Num<T>

Divide the Ts

Parameters

param lhs

Left-hand side of the operation

param rhs

Right-hand side of the operation

returns

lhs / rhs

method OptionAsync<T> add <NUM, T> (OptionAsync<T> lhs, OptionAsync<T> rhs) Source #

where NUM : struct, Num<T>

Add the Ts

Parameters

param lhs

Left-hand side of the operation

param rhs

Right-hand side of the operation

returns

lhs / rhs

method Task<bool> isSome <T> (OptionAsync<T> value) Source #

Check if OptionAsync is in a Some state

Parameters

type T

T

param value

OptionAsync

returns

True if value is in a Some state

method Task<bool> isNone <T> (OptionAsync<T> value) Source #

Check if OptionAsync is in a None state

Parameters

type T

T

param value

OptionAsync

returns

True if value is in a None state

method OptionAsync<T> SomeAsync <T> (T value) Source #

Create a Some of T (OptionAsync)

Parameters

type T

T

param value

Non-null value to be made OptionAsyncal

returns

OptionAsync<T> in a Some state or throws ValueIsNullException if isnull(value).

method OptionAsync<T> SomeAsync <T> (Task<T> taskValue) Source #

Create a lazy Some of T (OptionAsync)

Parameters

type T

T

param value

Non-null value to be made OptionAsyncal

returns

OptionAsync in a Some state or throws ValueIsNullException if isnull(value).

method OptionAsync<Task<A>> SomeValueAsync <A> (Task<A> taskValue) Source #

Create a lazy Some of T (OptionAsync)

Parameters

type T

T

param value

Non-null value to be made OptionAsyncal

returns

OptionAsync in a Some state or throws ValueIsNullException if isnull(value).

method OptionAsync<T> SomeAsync <T> (Func<Unit, Task<T>> f) Source #

Create a lazy Some of T (OptionAsync)

Parameters

type T

T

param value

Non-null value to be made OptionAsyncal

returns

OptionAsync in a Some state or throws ValueIsNullException if isnull(value).

method OptionAsync<T> SomeAsync <T> (Func<Task<T>> f) Source #

Create a lazy Some of T (OptionAsync)

Parameters

type T

T

param value

Non-null value to be made OptionAsyncal

returns

OptionAsync in a Some state or throws ValueIsNullException if isnull(value).

method OptionAsync<T> SomeAsync <T> (T? value) Source #

where T : struct

Create a Some of T from a Nullable (OptionAsync)

Parameters

type T

T

param value

Non-null value to be made OptionAsyncal

returns

OptionAsync in a Some state or throws ValueIsNullException if isnull(value)

method OptionAsync<T> OptionalAsync <T> (Task<T?> value) Source #

Create an OptionAsync

Parameters

type T

T

param value

Value to be made OptionAsyncal, or null

returns

If the value is null it will be None else Some(value)

method OptionAsync<T> OptionalAsync <T> (Func<Unit, Task<T?>> f) Source #

Create a lazy OptionAsync of T (OptionAsync)

Parameters

type T

T

param f

A function that returns the value to construct the OptionAsync with

returns

A lazy OptionAsync

method OptionAsync<T> OptionalAsync <T> (T? value) Source #

where T : struct

Create an OptionAsync

Parameters

type T

T

param value

Value to be made OptionAsyncal, or null

returns

If the value is null it will be None else Some(value)

method Task<Unit> ifSome <T> (OptionAsync<T> OptionAsync, Action<T> Some) Source #

Invokes the action if OptionAsync is in the Some state, otherwise nothing happens.

Parameters

param f

Action to invoke if OptionAsync is in the Some state

method Task<T> ifNone <T> (OptionAsync<T> ma, Func<T> None) Source #

Returns the result of invoking the None() operation if the OptionAsyncal is in a None state, otherwise the bound Some(x) value is returned.

Will not accept a null return value from the None operation

Parameters

param None

Operation to invoke if the structure is in a None state

returns

Tesult of invoking the None() operation if the OptionAsyncal is in a None state, otherwise the bound Some(x) value is returned.

method Task<T> ifNone <T> (OptionAsync<T> ma, T noneValue) Source #

Returns the noneValue if the OptionAsyncal is in a None state, otherwise the bound Some(x) value is returned.

Will not accept a null noneValue

Parameters

param noneValue

Value to return if in a None state

returns

noneValue if the OptionAsyncal is in a None state, otherwise the bound Some(x) value is returned

method Task<T> ifNoneUnsafe <T> (OptionAsync<T> ma, Func<T> None) Source #

Returns the result of invoking the None() operation if the OptionAsyncal is in a None state, otherwise the bound Some(x) value is returned.

Will allow null the be returned from the None operation

Parameters

param None

Operation to invoke if the structure is in a None state

returns

Tesult of invoking the None() operation if the OptionAsyncal is in a None state, otherwise the bound Some(x) value is returned.

method Task<T> ifNoneUnsafe <T> (OptionAsync<T> ma, T noneValue) Source #

Returns the noneValue if the OptionAsyncal is in a None state, otherwise the bound Some(x) value is returned.

Will allow noneValue to be null

Parameters

param noneValue

Value to return if in a None state

returns

noneValue if the OptionAsyncal is in a None state, otherwise the bound Some(x) value is returned

method Task<R> match <T, R> (OptionAsync<T> ma, Func<T, R> Some, Func<R> None) Source #

Match the two states of the OptionAsync and return a non-null R.

Parameters

type B

Return type

param Some

Some match operation. Must not return null.

param None

None match operation. Must not return null.

returns

A non-null B

method Task<R> matchAsync <T, R> (OptionAsync<T> ma, Func<T, Task<R>> Some, Func<R> None) Source #

Match the two states of the OptionAsync and return a non-null R.

Parameters

type B

Return type

param Some

Some match operation. Must not return null.

param None

None match operation. Must not return null.

returns

A non-null B

method Task<R> matchAsync <T, R> (OptionAsync<T> ma, Func<T, R> Some, Func<Task<R>> None) Source #

Match the two states of the OptionAsync and return a non-null R.

Parameters

type B

Return type

param Some

Some match operation. Must not return null.

param None

None match operation. Must not return null.

returns

A non-null B

method Task<R> matchAsync <T, R> (OptionAsync<T> ma, Func<T, Task<R>> Some, Func<Task<R>> None) Source #

Match the two states of the OptionAsync and return a non-null R.

Parameters

type B

Return type

param Some

Some match operation. Must not return null.

param None

None match operation. Must not return null.

returns

A non-null B

method Task<R> matchUnsafe <T, R> (OptionAsync<T> ma, Func<T, R> Some, Func<R> None) Source #

Match the two states of the OptionAsync and return a B, which can be null.

Parameters

type B

Return type

param Some

Some match operation. May return null.

param None

None match operation. May return null.

returns

B, or null

method Task<R> matchUnsafeAsync <T, R> (OptionAsync<T> ma, Func<T, Task<R>> Some, Func<R> None) Source #

Match the two states of the OptionAsync and return a B, which can be null.

Parameters

type B

Return type

param Some

Some match operation. May return null.

param None

None match operation. May return null.

returns

B, or null

method Task<R> matchUnsafeAsync <T, R> (OptionAsync<T> ma, Func<T, R> Some, Func<Task<R>> None) Source #

Match the two states of the OptionAsync and return a B, which can be null.

Parameters

type B

Return type

param Some

Some match operation. May return null.

param None

None match operation. May return null.

returns

B, or null

method Task<R> matchUnsafeAsync <T, R> (OptionAsync<T> ma, Func<T, Task<R>> Some, Func<Task<R>> None) Source #

Match the two states of the OptionAsync and return a B, which can be null.

Parameters

type B

Return type

param Some

Some match operation. May return null.

param None

None match operation. May return null.

returns

B, or null

method Task<Unit> match <T> (OptionAsync<T> ma, Action<T> Some, Action None) Source #

Match the two states of the OptionAsync

Parameters

param Some

Some match operation

param None

None match operation

method OptionAsync<B> apply <A, B> (OptionAsync<Func<A, B>> fab, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type FB derived from Applicative of B

method OptionAsync<B> apply <A, B> (Func<A, B> fab, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type FB derived from Applicative of B

method OptionAsync<C> apply <A, B, C> (OptionAsync<Func<A, B, C>> fabc, OptionAsync<A> fa, OptionAsync<B> fb) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative a to apply

param fb

Applicative b to apply

returns

Applicative of type FC derived from Applicative of C

method OptionAsync<C> apply <A, B, C> (Func<A, B, C> fabc, OptionAsync<A> fa, OptionAsync<B> fb) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative a to apply

param fb

Applicative b to apply

returns

Applicative of type FC derived from Applicative of C

method OptionAsync<Func<B, C>> apply <A, B, C> (OptionAsync<Func<A, B, C>> fabc, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type f(b -> c) derived from Applicative of Func<B, C>

method OptionAsync<Func<B, C>> apply <A, B, C> (Func<A, B, C> fabc, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type f(b -> c) derived from Applicative of Func<B, C>

method OptionAsync<Func<B, C>> apply <A, B, C> (OptionAsync<Func<A, Func<B, C>>> fabc, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type f(b -> c) derived from Applicative of Func<B, C>

method OptionAsync<Func<B, C>> apply <A, B, C> (Func<A, Func<B, C>> fabc, OptionAsync<A> fa) Source #

Apply

Parameters

param fab

Function to apply the applicative to

param fa

Applicative to apply

returns

Applicative of type f(b -> c) derived from Applicative of Func<B, C>

method OptionAsync<B> action <A, B> (OptionAsync<A> fa, OptionAsync<B> fb) Source #

Evaluate fa, then fb, ignoring the result of fa

Parameters

param fa

Applicative to evaluate first

param fb

Applicative to evaluate second and then return

returns

Applicative of type OptionAsync

method Task<S> fold <S, A> (OptionAsync<A> ma, S state, Func<S, A, S> folder) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param folder

Folder function, applied if OptionAsync is in a Some state

returns

The aggregate state

method Task<S> fold <S, A> (OptionAsync<A> ma, S state, Func<S, A, Task<S>> folder) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param folder

Folder function, applied if OptionAsync is in a Some state

returns

The aggregate state

method Task<S> bifold <S, A> (OptionAsync<A> ma, S state, Func<S, A, S> Some, Func<S, S> None) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if OptionAsync is in a Some state

param None

Folder function, applied if OptionAsync is in a None state

returns

The aggregate state

method Task<S> bifold <S, A> (OptionAsync<A> ma, S state, Func<S, A, Task<S>> Some, Func<S, S> None) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if OptionAsync is in a Some state

param None

Folder function, applied if OptionAsync is in a None state

returns

The aggregate state

method Task<S> bifold <S, A> (OptionAsync<A> ma, S state, Func<S, A, S> Some, Func<S, Task<S>> None) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if OptionAsync is in a Some state

param None

Folder function, applied if OptionAsync is in a None state

returns

The aggregate state

method Task<S> bifold <S, A> (OptionAsync<A> ma, S state, Func<S, A, Task<S>> Some, Func<S, Task<S>> None) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if OptionAsync is in a Some state

param None

Folder function, applied if OptionAsync is in a None state

returns

The aggregate state

method Task<S> bifold <S, A> (OptionAsync<A> ma, S state, Func<S, A, S> Some, Func<S, Unit, S> None) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if OptionAsync is in a Some state

param None

Folder function, applied if OptionAsync is in a None state

returns

The aggregate state

method Task<S> bifold <S, A> (OptionAsync<A> ma, S state, Func<S, A, Task<S>> Some, Func<S, Unit, S> None) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if OptionAsync is in a Some state

param None

Folder function, applied if OptionAsync is in a None state

returns

The aggregate state

method Task<S> bifold <S, A> (OptionAsync<A> ma, S state, Func<S, A, S> Some, Func<S, Unit, Task<S>> None) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if OptionAsync is in a Some state

param None

Folder function, applied if OptionAsync is in a None state

returns

The aggregate state

method Task<S> bifold <S, A> (OptionAsync<A> ma, S state, Func<S, A, Task<S>> Some, Func<S, Unit, Task<S>> None) Source #

OptionAsync types are like lists of 0 or 1 items, and therefore follow the same rules when folding.

In the case of lists, 'Fold', when applied to a binary operator, a starting value(typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:

Note that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, 'Fold' can produce a terminating expression from an infinite list.

Parameters

type S

Aggregate state type

param state

Initial state

param Some

Folder function, applied if OptionAsync is in a Some state

param None

Folder function, applied if OptionAsync is in a None state

returns

The aggregate state

method Task<bool> forall <A> (OptionAsync<A> ma, Func<A, bool> pred) Source #

Apply a predicate to the bound value. If the OptionAsync is in a None state then True is returned (because the predicate applies for-all values). If the OptionAsync is in a Some state the value is the result of running applying the bound value to the predicate supplied.

Parameters

param pred

Predicate to apply

returns

If the OptionAsync is in a None state then True is returned (because the predicate applies for-all values). If the OptionAsync is in a Some state the value is the result of running applying the bound value to the predicate supplied.

method Task<bool> biforall <A> (OptionAsync<A> ma, Func<A, bool> Some, Func<Unit, bool> None) Source #

Apply a predicate to the bound value. If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param Some

Predicate to apply if in a Some state

param None

Predicate to apply if in a None state

returns

If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<bool> biforall <A> (OptionAsync<A> ma, Func<A, bool> Some, Func<bool> None) Source #

Apply a predicate to the bound value. If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param Some

Predicate to apply if in a Some state

param None

Predicate to apply if in a None state

returns

If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<int> count <A> (OptionAsync<A> ma) Source #

Return the number of bound values in this structure:

None = 0

Some = 1

Parameters

returns

method Task<bool> exists <A> (OptionAsync<A> ma, Func<A, bool> pred) Source #

Apply a predicate to the bound value. If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param pred

Predicate to apply

returns

If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<bool> biexists <A> (OptionAsync<A> ma, Func<A, bool> Some, Func<Unit, bool> None) Source #

Apply a predicate to the bound value. If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param Some

Predicate to apply if in a Some state

param None

Predicate to apply if in a None state

returns

If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method Task<bool> biexists <A> (OptionAsync<A> ma, Func<A, bool> Some, Func<bool> None) Source #

Apply a predicate to the bound value. If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

Parameters

param Some

Predicate to apply if in a Some state

param None

Predicate to apply if in a None state

returns

If the OptionAsync is in a None state then True is returned if invoking None returns True. If the OptionAsync is in a Some state the value is the result of running applying the bound value to the Some predicate supplied.

method OptionAsync<B> map <A, B> (OptionAsync<A> ma, Func<A, B> f) Source #

Projection from one value to another

Parameters

type B

Resulting functor value type

param f

Projection function

returns

Mapped functor

method OptionAsync<B> bimap <A, B> (OptionAsync<A> ma, Func<A, B> Some, Func<B> None) Source #

Projection from one value to another

Parameters

type B

Resulting functor value type

param Some

Projection function

param None

Projection function

returns

Mapped functor

method OptionAsync<B> bimap <A, B> (OptionAsync<A> ma, Func<A, B> Some, Func<Unit, B> None) Source #

Projection from one value to another

Parameters

type B

Resulting functor value type

param Some

Projection function

param None

Projection function

returns

Mapped functor

method OptionAsync<Func<T2, R>> parmap <T1, T2, R> (OptionAsync<T1> ma, Func<T1, T2, R> mapper) Source #

Partial application map

method OptionAsync<Func<T2, Func<T3, R>>> parmap <T1, T2, T3, R> (OptionAsync<T1> ma, Func<T1, T2, T3, R> mapper) Source #

Partial application map

method OptionAsync<T> filter <T> (OptionAsync<T> ma, Func<T, bool> pred) Source #

Apply a predicate to the bound value (if in a Some state)

Parameters

param pred

Predicate to apply

returns

Some(x) if the OptionAsync is in a Some state and the predicate returns True. None otherwise.

method OptionAsync<R> bind <T, R> (OptionAsync<T> ma, Func<T, OptionAsync<R>> binder) Source #

Monadic bind operation

method Task<IEnumerable<R>> match <T, R> (IEnumerable<OptionAsync<T>> list, Func<T, IEnumerable<R>> Some, Func<IEnumerable<R>> None ) Source #

Match the two states of the list of OptionAsyncs

Parameters

param Some

Some match operation

param None

None match operation

method Task<IEnumerable<R>> match <T, R> (IEnumerable<OptionAsync<T>> list, Func<T, IEnumerable<R>> Some, IEnumerable<R> None) Source #

Match the two states of the list of OptionAsyncs

Parameters

param Some

Some match operation

param None

None match operation

method Task<IEnumerable<T>> somes <T> (IEnumerable<OptionAsync<T>> list) Source #

Extracts from a list of 'OptionAsync' all the 'Some' elements. All the 'Some' elements are extracted in order.

method Task<Lst<T>> toList <T> (OptionAsync<T> OptionAsync) Source #

Convert the OptionAsync to an immutable list of zero or one items

Parameters

returns

An immutable list of zero or one items

method Task<Arr<T>> toArray <T> (OptionAsync<T> OptionAsync) Source #

Convert the OptionAsync to an enumerable of zero or one items

Parameters

returns

An enumerable of zero or one items

class SomeAsyncContext <OPT, OA, A, B> Source #

where OPT : struct, OptionalAsync<OA, A>

Methods

method Task<B> None (Func<B> noneHandler) Source #

The None branch of the matching operation

Parameters

param noneHandler

None branch operation

method Task<B> None (B noneValue) Source #

The None branch of the matching operation

Parameters

param noneValue

None branch value

class SomeAsyncUnitContext <OPT, OA, A> Source #

where OPT : struct, OptionalAsync<OA, A>

Methods

method Task<Unit> None (Action f) Source #

The None branch of the matching operation

Parameters

param noneHandler

None branch operation