LanguageExt.Core

LanguageExt.Core Effects Eff Eff with runtime

Contents

Sub modules

Extensions
Prelude

record Eff <RT, A> (ReaderT<RT, IO, A> effect) Source #

Transducer based effect/Eff monad

Parameters

type RT

Runtime struct

type A

Bound value type

Methods

method Eff<RT, A> Pure (A value) Source #

Lift a value into the Eff monad

method Eff<RT, A> Fail (Error error) Source #

Lift a failure into the Eff monad

method Eff<RT, A> Lift (Func<RT, Either<Error, A>> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> Lift (Func<RT, Fin<A>> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> Lift (Func<RT, A> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> LiftIO (Func<RT, Task<A>> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> LiftIO (Func<RT, Task<Fin<A>>> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> LiftIO (Func<RT, IO<A>> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> Lift (Func<Either<Error, A>> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> Lift (Func<Fin<A>> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> Lift (Func<A> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> LiftIO (Func<Task<A>> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> LiftIO (Func<Task<Fin<A>>> f) Source #

Lift an effect into the Eff monad

method Eff<RT, A> LiftIO (IO<A> ma) Source #

Lift an effect into the Eff monad

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

Maps the Eff monad if it's in a success state

Parameters

param f

Function to map the success value with

returns

Mapped Eff monad

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

Maps the Eff monad if it's in a success state

Parameters

param f

Function to map the success value with

returns

Mapped Eff monad

method Eff<RT, A> MapFail (Func<Error, Error> f) Source #

Maps the Eff monad if it's in a success state

Parameters

param f

Function to map the success value with

returns

Mapped Eff monad

method Eff<RT, B> MapIO <B> (Func<IO<A>, IO<B>> f) Source #

Maps the inner IO monad

Parameters

param f

Function to map with

returns

Mapped Eff monad

method Eff<RT, B> BiMap <B> (Func<A, B> Succ, Func<Error, Error> Fail) Source #

Mapping of either the Success state or the Failure state depending on what state this Eff monad is in.

Parameters

param Succ

Mapping to use if the Eff monad if in a success state

param Fail

Mapping to use if the Eff monad if in a failure state

returns

Mapped Eff monad

method Eff<RT, B> Match <B> (Func<A, B> Succ, Func<Error, B> Fail) Source #

Pattern match the success or failure values and collapse them down to a success value

Parameters

param Succ

Success value mapping

param Fail

Failure value mapping

returns

IO in a success state

method Eff<RT, A> IfFail (Func<Error, A> Fail) Source #

Map the failure to a success value

Parameters

param f

Function to map the fail value

returns

IO in a success state

method Eff<RT, A> IfFailEff (Func<Error, K<Eff<RT>, A>> Fail) Source #

Map the failure to a new IO effect

Parameters

param f

Function to map the fail value

returns

IO that encapsulates that IfFail

method Eff<RT, A> IfFailEff (Func<Error, K<Eff, A>> Fail) Source #

Map the failure to a new IO effect

Parameters

param f

Function to map the fail value

returns

IO that encapsulates that IfFail

method Eff<RT, A> Filter (Func<A, bool> predicate) Source #

Only allow values through the effect if the predicate returns true for the bound value

Parameters

param predicate

Predicate to apply to the bound value>

returns

Filtered IO

method Eff<RT, A> Where (Func<A, bool> predicate) Source #

Only allow values through the effect if the predicate returns true for the bound value

Parameters

param predicate

Predicate to apply to the bound value>

returns

Filtered IO

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

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param f

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, B> Bind <B> (Func<A, IO<B>> f) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param f

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, B> Bind <B> (Func<A, Ask<RT, B>> f) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param f

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, B> Bind <B> (Func<A, K<Eff<RT>, B>> f) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param f

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, B> Bind <B> (Func<A, Pure<B>> f) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param f

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, A> Bind (Func<A, Fail<Error>> f) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param f

Bind operation

returns

Composition of this monad and the result of the function provided

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

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param f

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, B> Bind <B> (Func<A, K<Eff, B>> f) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param f

Bind operation

returns

Composition of this monad and the result of the function provided

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

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, C> SelectMany <B, C> (Func<A, K<Eff<RT>, B>> bind, Func<A, B, C> project) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, C> SelectMany <B, C> (Func<A, Pure<B>> bind, Func<A, B, C> project) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, C> SelectMany <B, C> (Func<A, IO<B>> bind, Func<A, B, C> project) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, C> SelectMany <B, C> (Func<A, Ask<RT, B>> bind, Func<A, B, C> project) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, C> SelectMany <B, C> (Func<A, Fail<Error>> bind, Func<A, B, C> project) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, C> SelectMany <C> (Func<A, Guard<Error, Unit>> bind, Func<A, Unit, C> project) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, C> SelectMany <C> (Func<A, Guard<Fail<Error>, Unit>> bind, Func<A, Unit, C> project) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

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

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, C> SelectMany <B, C> (Func<A, K<Eff, B>> bind, Func<A, B, C> project) Source #

Monadic bind operation. This runs the current Eff monad and feeds its result to the function provided; which in turn returns a new Eff monad. This can be thought of as chaining IO operations sequentially.

Parameters

param bind

Bind operation

returns

Composition of this monad and the result of the function provided

method Eff<RT, A> Success (A value) Source #

Lift a value into the Eff monad

method Eff<RT, A> Effect (Func<RT, A> f) Source #

Lift a synchronous effect into the Eff monad

method Eff<RT, A> EffectMaybe (Func<RT, Fin<A>> f) Source #

Lift a synchronous effect into the Eff monad

method string ToString () Source #

Operators

operator >> (Eff<RT, A> lhs, Eff<RT, A> rhs) Source #

operator >> (Eff<RT, A> lhs, Eff<A> rhs) Source #

operator >> (Eff<RT, A> lhs, K<Eff<RT>, A> rhs) Source #

operator >> (Eff<RT, A> lhs, K<Eff, A> rhs) Source #

operator >> (Eff<RT, A> lhs, Eff<RT, Unit> rhs) Source #

Sequentially compose two actions, discarding any value produced by the first, like sequencing operators (such as the semicolon) in C#.

Parameters

param lhs

First action to run

param rhs

Second action to run

returns

Result of the second action

operator >> (Eff<RT, A> lhs, Eff<Unit> rhs) Source #

Sequentially compose two actions, discarding any value produced by the first, like sequencing operators (such as the semicolon) in C#.

Parameters

param lhs

First action to run

param rhs

Second action to run

returns

Result of the second action

operator >> (Eff<RT, A> lhs, K<Eff<RT>, Unit> rhs) Source #

Sequentially compose two actions. The second action is a unit returning action, so the result of the first action is propagated.

Parameters

param lhs

First action to run

param rhs

Second action to run

returns

Result of the first action

operator >> (Eff<RT, A> lhs, K<Eff, Unit> rhs) Source #

Sequentially compose two actions. The second action is a unit returning action, so the result of the first action is propagated.

Parameters

param lhs

First action to run

param rhs

Second action to run

returns

Result of the first action

operator | (Eff<RT, A> ma, Eff<RT, A> mb) Source #

Run the first IO operation; if it fails, run the second. Otherwise, return the result of the first without running the second.

Parameters

param ma

First IO operation

param mb

Alternative IO operation

returns

Result of either the first or second operation

operator | (Eff<RT, A> ma, K<Eff<RT>, A> mb) Source #

Run the first IO operation; if it fails, run the second. Otherwise, return the result of the first without running the second.

Parameters

param ma

First IO operation

param mb

Alternative IO operation

returns

Result of either the first or second operation

operator | (K<Eff<RT>, A> ma, Eff<RT, A> mb) Source #

Run the first IO operation; if it fails, run the second. Otherwise, return the result of the first without running the second.

Parameters

param ma

First IO operation

param mb

Alternative IO operation

returns

Result of either the first or second operation

operator | (Eff<RT, A> ma, Pure<A> mb) Source #

Run the first IO operation; if it fails, run the second. Otherwise, return the result of the first without running the second.

Parameters

param ma

First IO operation

param mb

Alternative value if the IO operation fails

returns

Result of either the first or second operation

operator | (Eff<RT, A> ma, Fail<Error> error) Source #

Run the first IO operation; if it fails, run the second. Otherwise, return the result of the first without running the second.

Parameters

param ma

First IO operation

param error

Alternative value if the IO operation fails

returns

Result of either the first or second operation

operator | (Eff<RT, A> ma, Error error) Source #

Run the first IO operation; if it fails, run the second. Otherwise, return the result of the first without running the second.

Parameters

param ma

First IO operation

param error

Error if the IO operation fails

returns

Result of either the first or second operation

operator | (Eff<RT, A> ma, A value) Source #

Run the first IO operation; if it fails, run the second. Otherwise, return the result of the first without running the second.

Parameters

param ma

First IO operation

param value

Alternative value if the IO operation fails

returns

Result of either the first or second operation

operator | (Eff<RT, A> ma, CatchM<Error, Eff<RT>, A> mb) Source #

Run the first IO operation; if it fails, run the second. Otherwise, return the result of the first without running the second.

Parameters

param ma

First IO operation

param mb

Alternative IO operation

returns

Result of either the first or second operation

operator | (Eff<RT, A> ma, CatchM<Error, Eff, A> mb) Source #

Run the first IO operation; if it fails, run the second. Otherwise, return the result of the first without running the second.

Parameters

param ma

First IO operation

param mb

Alternative IO operation

returns

Result of either the first or second operation