- EitherT <L, M, R> (K<M, Either<L, R>> runEither)
- Right (R value)
- Left (L value)
- IsRight
- IsLeft
- Lift (Pure<R> pure)
- Lift (Either<L, R> either)
- Lift (Fail<L> fail)
- Lift (K<M, R> monad)
- Lift (K<M, Either<L, R>> monad)
- LiftIO (IO<R> monad)
- LiftIO (IO<Either<L, R>> monad)
- Match <B> (Func<L, B> Left, Func<R, B> Right)
- Match (Action<L> Left, Action<R> Right)
- IfLeft (Func<R> Left)
- IfLeft (Func<L, R> leftMap)
- IfLeft (R rightValue)
- IfLeft (Action<L> Left)
- IfRight (Action<R> Right)
- IfRight (L leftValue)
- IfRight (Func<L> Right)
- IfRight (Func<R, L> rightMap)
- MapT <M1, B> (Func<K<M, Either<L, R>>, K<M1, Either<L, B>>> f)
- MapM <B> (Func<K<M, R>, K<M, B>> f)
- Map <B> (Func<R, B> f)
- MapLeft <B> (Func<L, B> f)
- Select <B> (Func<R, B> f)
- Bind <B> (Func<R, K<EitherT<L, M>, B>> f)
- Bind <B> (Func<R, Either<L, B>> f)
- Bind <B> (Func<R, EitherT<L, M, B>> f)
- Bind <B> (Func<R, IO<B>> f)
- Bind <B> (Func<R, Pure<B>> f)
- Bind <B> (Func<R, Fail<L>> f)
- BiBind <B> (Func<L, EitherT<L, M, B>> Left, Func<R, EitherT<L, M, B>> Right)
- BindLeft (Func<L, EitherT<L, M, R>> Left)
- SelectMany <B, C> (Func<R, K<EitherT<L, M>, B>> bind, Func<R, B, C> project)
- SelectMany <B, C> (Func<R, EitherT<L, M, B>> bind, Func<R, B, C> project)
- SelectMany <B, C> (Func<R, K<M, B>> bind, Func<R, B, C> project)
- SelectMany <B, C> (Func<R, Either<L, B>> bind, Func<R, B, C> project)
- SelectMany <B, C> (Func<R, Pure<B>> bind, Func<R, B, C> project)
- SelectMany <B, C> (Func<R, IO<B>> bind, Func<R, B, C> project)
- SelectMany <C> (Func<R, Guard<L, Unit>> bind, Func<R, Unit, C> project)
- >> (EitherT<L, M, R> lhs, EitherT<L, M, R> rhs)
- >> (EitherT<L, M, R> lhs, K<EitherT<L, M>, R> rhs)
- >> (EitherT<L, M, R> lhs, EitherT<L, M, Unit> rhs)
- >> (EitherT<L, M, R> lhs, K<EitherT<L, M>, Unit> rhs)
- | (EitherT<L, M, R> lhs, EitherT<L, M, R> rhs)
- | (K<EitherT<L, M>, R> lhs, EitherT<L, M, R> rhs)
- | (EitherT<L, M, R> lhs, K<EitherT<L, M>, R> rhs)
- | (EitherT<L, M, R> ma, R b)
- | (EitherT<L, M, R> ma, Pure<R> mb)
- | (EitherT<L, M, R> ma, Fail<L> mb)
- | (EitherT<L, M, R> ma, L mb)
- | (EitherT<L, M, R> ma, CatchM<L, EitherT<L, M>, R> mb)
- ToOption ()
- ToStream ()
- LeftToStream ()
- EitherTExtensions
- As <L, M, A> (this K<EitherT<L, M>, A> ma)
- ToFin <M, A> (this K<EitherT<Error, M>, A> ma)
- Run <L, M, A> (this K<EitherT<L, M>, A> ma)
- Flatten <L, A> (this Task<EitherT<L, IO, A>> tma)
- ToIO <L, A> (this Task<Either<L, A>> ma)
- Flatten <L, M, A> (this EitherT<L, M, EitherT<L, M, A>> mma)
- SelectMany <L, M, A, B, C> ( this K<M, A> ma, Func<A, K<EitherT<L, M>, B>> bind, Func<A, B, C> project)
- SelectMany <L, M, A, B, C> ( this K<M, A> ma, Func<A, EitherT<L, M, B>> bind, Func<A, B, C> project)
- Lefts <L, M, R> (this IEnumerable<EitherT<L, M, R>> self)
- Lefts <L, M, R> (this Seq<EitherT<L, M, R>> self)
- Rights <L, M, R> (this IEnumerable<EitherT<L, M, R>> self)
- Rights <L, M, R> (this Seq<EitherT<L, M, R>> self)
- Partition <L, M, R> (this Seq<EitherT<L, M, R>> self)
- Partition <L, M, R> (this IEnumerable<EitherT<L, M, R>> self)
- EitherTExtensions
- Map <L, M, A, B> (this Func<A, B> f, K<EitherT<L, M>, A> ma)
- Map <L, M, A, B> (this Func<A, B> f, EitherT<L, M, A> ma)
- Action <L, M, A, B> (this EitherT<L, M, A> ma, K<EitherT<L, M>, B> mb)
- Action <L, M, A, B> (this K<EitherT<L, M>, A> ma, K<EitherT<L, M>, B> mb)
- Apply <L, M, A, B> (this EitherT<L, M, Func<A, B>> mf, K<EitherT<L, M>, A> ma)
- Apply <L, M, A, B> (this K<EitherT<L, M>, Func<A, B>> mf, K<EitherT<L, M>, A> ma)
- EitherT <L, M>
- Right <A> (A value)
- Left <A> (L value)
- lift <A> (Either<L, A> ma)
- lift <A> (Pure<A> ma)
- lift <A> (Fail<L> ma)
- liftIO <A> (IO<A> ma)
- EitherT
- Right <L, M, A> (A value)
- Left <L, M, A> (L value)
- lift <L, M, A> (Either<L, A> ma)
- lift <L, M, A> (K<M, A> ma)
- lift <L, M, A> (Pure<A> ma)
- lift <L, M, A> (Fail<L> ma)
- liftIO <L, M, A> (K<IO, A> ma)
- liftIO <L, M, A> (IO<Either<L, A>> ma)
- match <L, M, A, B> (EitherT<L, M, A> ma, Func<L, B> Left, Func<A, B> Right)
- EitherT <L, M>
- Prelude
record EitherT <L, M, R> (K<M, Either<L, R>> runEither) Source #
EitherT
monad transformer, which allows for either an L
or R
result value to be carried.
type | M | Given monad trait |
type | L | Left value type |
type | R | Bound value type |
param | runEither | Transducer that represents the transformer operation |
method EitherT<L, M, R> Right (R value) Source #
Lift a pure value into the monad-transformer
param | value | Value to lift |
returns |
|
method EitherT<L, M, R> Left (L value) Source #
Lift a fail value into the monad-transformer
param | value | Value to lift |
returns |
|
method EitherT<L, M, R> Lift (Pure<R> pure) Source #
Lifts a given monad into the transformer
param | pure | Monad to lift |
returns |
|
method EitherT<L, M, R> Lift (Either<L, R> either) Source #
Lifts a given monad into the transformer
param | either | Monad to lift |
returns |
|
method EitherT<L, M, R> Lift (Fail<L> fail) Source #
Lifts a given monad into the transformer
param | fail | Monad to lift |
returns |
|
method EitherT<L, M, R> Lift (K<M, R> monad) Source #
Lifts a given monad into the transformer
param | monad | Monad to lift |
returns |
|
method EitherT<L, M, R> Lift (K<M, Either<L, R>> monad) Source #
Lifts a given monad into the transformer
param | monad | Monad to lift |
returns |
|
method EitherT<L, M, R> LiftIO (IO<R> monad) Source #
Lifts a given monad into the transformer
param | monad | Monad to lift |
returns |
|
method EitherT<L, M, R> LiftIO (IO<Either<L, R>> monad) Source #
Lifts a given monad into the transformer
param | monad | Monad to lift |
returns |
|
method K<M, B> Match <B> (Func<L, B> Left, Func<R, B> Right) Source #
Invokes the Right or Left function depending on the state of the Either
type | B | Return type |
param | Left | Function to invoke if in a Left state |
param | Right | Function to invoke if in a Right state |
returns | The return value of the invoked function |
method K<M, Unit> Match (Action<L> Left, Action<R> Right) Source #
Invokes the Right or Left action depending on the state of the Either
param | Right | Action to invoke if in a Right state |
param | Left | Action to invoke if in a Left state |
returns | Unit |
method K<M, R> IfLeft (Func<R> Left) Source #
Executes the Left function if the Either is in a Left state. Returns the Right value if the Either is in a Right state.
param | Left | Function to generate a Right value if in the Left state |
returns | Returns an unwrapped Right value |
method K<M, R> IfLeft (Func<L, R> leftMap) Source #
Executes the leftMap function if the Either is in a Left state. Returns the Right value if the Either is in a Right state.
param | leftMap | Function to generate a Right value if in the Left state |
returns | Returns an unwrapped Right value |
method K<M, R> IfLeft (R rightValue) Source #
Returns the rightValue if the Either is in a Left state. Returns the Right value if the Either is in a Right state.
param | rightValue | Value to return if in the Left state |
returns | Returns an unwrapped Right value |
method K<M, Unit> IfLeft (Action<L> Left) Source #
Executes the Left action if the Either is in a Left state.
param | Left | Function to generate a Right value if in the Left state |
returns | Returns an unwrapped Right value |
method K<M, Unit> IfRight (Action<R> Right) Source #
Invokes the Right action if the Either is in a Right state, otherwise does nothing
param | Right | Action to invoke |
returns | Unit |
method K<M, L> IfRight (L leftValue) Source #
Returns the leftValue if the Either is in a Right state. Returns the Left value if the Either is in a Left state.
param | leftValue | Value to return if in the Left state |
returns | Returns an unwrapped Left value |
method K<M, L> IfRight (Func<L> Right) Source #
Returns the result of Right() if the Either is in a Right state. Returns the Left value if the Either is in a Left state.
param | Right | Function to generate a Left value if in the Right state |
returns | Returns an unwrapped Left value |
method K<M, L> IfRight (Func<R, L> rightMap) Source #
Returns the result of rightMap if the Either is in a Right state. Returns the Left value if the Either is in a Left state.
param | rightMap | Function to generate a Left value if in the Right state |
returns | Returns an unwrapped Left value |
method EitherT<L, M1, B> MapT <M1, B> (Func<K<M, Either<L, R>>, K<M1, Either<L, B>>> f) Source #
Maps the bound monad
type | M1 | Target monad type |
type | B | Target bound value type |
param | f | Mapping function |
returns | Mapped monad |
method EitherT<L, M, B> MapM <B> (Func<K<M, R>, K<M, B>> f) Source #
Maps the given monad
param | f | Mapping function |
method EitherT<L, M, B> Map <B> (Func<R, B> f) Source #
Maps the bound value
type | B | Target bound value type |
param | f | Mapping function |
returns |
|
method EitherT<B, M, R> MapLeft <B> (Func<L, B> f) Source #
Maps the left value
type | B | Target bound value type |
param | f | Mapping function |
returns |
|
method EitherT<L, M, B> Select <B> (Func<R, B> f) Source #
Maps the bound value
type | B | Target bound value type |
param | f | Mapping transducer |
returns |
|
method EitherT<L, M, B> Bind <B> (Func<R, K<EitherT<L, M>, B>> f) Source #
Monad bind operation
type | B | Target bound value type |
param | f | Mapping function |
returns |
|
method EitherT<L, M, B> Bind <B> (Func<R, Either<L, B>> f) Source #
Monad bind operation
type | B | Target bound value type |
param | f | Mapping function |
returns |
|
method EitherT<L, M, B> Bind <B> (Func<R, EitherT<L, M, B>> f) Source #
Monad bind operation
type | B | Target bound value type |
param | f | Mapping function |
returns |
|
method EitherT<L, M, B> Bind <B> (Func<R, IO<B>> f) Source #
Monad bind operation
type | B | Target bound value type |
param | f | Mapping function |
returns |
|
method EitherT<L, M, B> Bind <B> (Func<R, Pure<B>> f) Source #
Monad bind operation
type | B | Target bound value type |
param | f | Mapping function |
returns |
|
method EitherT<L, M, B> Bind <B> (Func<R, Fail<L>> f) Source #
Monad bind operation
type | B | Target bound value type |
param | f | Mapping function |
returns |
|
method EitherT<L, M, B> BiBind <B> (Func<L, EitherT<L, M, B>> Left, Func<R, EitherT<L, M, B>> Right) Source #
Monad bi-bind operation
type | B | Target bound value type |
param | Left | Left state mapping function |
param | Right | Left state mapping function |
returns |
|
method EitherT<L, M, R> BindLeft (Func<L, EitherT<L, M, R>> Left) Source #
Monad bi-bind operation
param | Left | Left state mapping function |
returns |
|
method EitherT<L, M, C> SelectMany <B, C> (Func<R, K<EitherT<L, M>, B>> bind, Func<R, B, C> project) Source #
Monad bind operation
type | B | Intermediate bound value type |
type | C | Target bound value type |
param | bind | Monadic bind function |
param | project | Projection function |
returns |
|
method EitherT<L, M, C> SelectMany <B, C> (Func<R, EitherT<L, M, B>> bind, Func<R, B, C> project) Source #
Monad bind operation
type | B | Intermediate bound value type |
type | C | Target bound value type |
param | bind | Monadic bind function |
param | project | Projection function |
returns |
|
method EitherT<L, M, C> SelectMany <B, C> (Func<R, K<M, B>> bind, Func<R, B, C> project) Source #
Monad bind operation
type | B | Intermediate bound value type |
type | C | Target bound value type |
param | bind | Monadic bind function |
param | project | Projection function |
returns |
|
method EitherT<L, M, C> SelectMany <B, C> (Func<R, Either<L, B>> bind, Func<R, B, C> project) Source #
Monad bind operation
type | B | Intermediate bound value type |
type | C | Target bound value type |
param | bind | Monadic bind function |
param | project | Projection function |
returns |
|
method EitherT<L, M, C> SelectMany <B, C> (Func<R, Pure<B>> bind, Func<R, B, C> project) Source #
Monad bind operation
type | B | Intermediate bound value type |
type | C | Target bound value type |
param | bind | Monadic bind function |
param | project | Projection function |
returns |
|
method EitherT<L, M, C> SelectMany <B, C> (Func<R, IO<B>> bind, Func<R, B, C> project) Source #
Monad bind operation
type | B | Intermediate bound value type |
type | C | Target bound value type |
param | bind | Monadic bind function |
param | project | Projection function |
returns |
|
method EitherT<L, M, C> SelectMany <C> (Func<R, Guard<L, Unit>> bind, Func<R, Unit, C> project) Source #
Monad bind operation
type | B | Intermediate bound value type |
type | C | Target bound value type |
param | bind | Monadic bind function |
param | project | Projection function |
returns |
|
method StreamT<M, L> LeftToStream () Source #
operator >> (EitherT<L, M, R> lhs, EitherT<L, M, R> rhs) Source #
Sequentially compose two actions, discarding any value produced by the first, like sequencing operators (such as the semicolon) in C#.
param | lhs | First action to run |
param | rhs | Second action to run |
returns | Result of the second action |
operator >> (EitherT<L, M, R> lhs, K<EitherT<L, M>, R> rhs) Source #
Sequentially compose two actions, discarding any value produced by the first, like sequencing operators (such as the semicolon) in C#.
param | lhs | First action to run |
param | rhs | Second action to run |
returns | Result of the second action |
operator >> (EitherT<L, M, R> lhs, EitherT<L, M, Unit> rhs) Source #
Sequentially compose two actions. The second action is a unit returning action, so the result of the first action is propagated.
param | lhs | First action to run |
param | rhs | Second action to run |
returns | Result of the first action |
class EitherTExtensions Source #
EitherT monad-transformer extensions
method K<M, Either<L, A>> Run <L, M, A> (this K<EitherT<L, M>, A> ma) Source #
Runs the EitherT exposing the outer monad with an inner wrapped Either
method EitherT<L, IO, A> Flatten <L, A> (this Task<EitherT<L, IO, A>> tma) Source #
Get the outer task and wrap it up in a new IO within the EitherT IO
method EitherT<L, M, A> Flatten <L, M, A> (this EitherT<L, M, EitherT<L, M, A>> mma) Source #
Monadic join
method EitherT<L, M, C> SelectMany <L, M, A, B, C> ( this K<M, A> ma, Func<A, K<EitherT<L, M>, B>> bind, Func<A, B, C> project) Source #
Monad bind operation
type | B | Intermediate bound value type |
type | C | Target bound value type |
param | bind | Monadic bind function |
param | project | Projection function |
returns |
|
method EitherT<L, M, C> SelectMany <L, M, A, B, C> ( this K<M, A> ma, Func<A, EitherT<L, M, B>> bind, Func<A, B, C> project) Source #
Monad bind operation
type | B | Intermediate bound value type |
type | C | Target bound value type |
param | bind | Monadic bind function |
param | project | Projection function |
returns |
|
method K<M, Seq<L>> Lefts <L, M, R> (this IEnumerable<EitherT<L, M, R>> self) Source #
Extracts from a list of 'Either' all the 'Left' elements. All the 'Left' elements are extracted in order.
type | L | Left |
type | R | Right |
param | self | Either list |
returns | An enumerable of L |
method K<M, Seq<L>> Lefts <L, M, R> (this Seq<EitherT<L, M, R>> self) Source #
Extracts from a list of 'Either' all the 'Left' elements. All the 'Left' elements are extracted in order.
type | L | Left |
type | R | Right |
param | self | Either list |
returns | An enumerable of L |
method K<M, Seq<R>> Rights <L, M, R> (this IEnumerable<EitherT<L, M, R>> self) Source #
Extracts from a list of 'Either' all the 'Right' elements. All the 'Right' elements are extracted in order.
type | L | Left |
type | R | Right |
param | self | Either list |
returns | An enumerable of L |
method K<M, Seq<R>> Rights <L, M, R> (this Seq<EitherT<L, M, R>> self) Source #
Extracts from a list of 'Either' all the 'Right' elements. All the 'Right' elements are extracted in order.
type | L | Left |
type | R | Right |
param | self | Either list |
returns | An enumerable of L |
method K<M, (Seq<L> Lefts, Seq<R> Rights)> Partition <L, M, R> (this Seq<EitherT<L, M, R>> self) Source #
Partitions a list of 'Either' into two lists. All the 'Left' elements are extracted, in order, to the first component of the output. Similarly, the 'Right' elements are extracted to the second component of the output.
type | L | Left |
type | R | Right |
param | self | Either list |
returns | A tuple containing the enumerable of L and enumerable of R |
method K<M, (Seq<L> Lefts, Seq<R> Rights)> Partition <L, M, R> (this IEnumerable<EitherT<L, M, R>> self) Source #
Partitions a list of 'Either' into two lists. All the 'Left' elements are extracted, in order, to the first component of the output. Similarly, the 'Right' elements are extracted to the second component of the output.
type | L | Left |
type | R | Right |
param | self | Either list |
returns | A tuple containing the enumerable of L and enumerable of R |
class EitherTExtensions Source #
method EitherT<L, M, B> Map <L, M, A, B> (this Func<A, B> f, K<EitherT<L, M>, A> ma) Source #
Functor map operation
Unwraps the value within the functor, passes it to the map function f
provided, and
then takes the mapped value and wraps it back up into a new functor.
param | ma | Functor to map |
param | f | Mapping function |
returns | Mapped functor |
method EitherT<L, M, B> Map <L, M, A, B> (this Func<A, B> f, EitherT<L, M, A> ma) Source #
Functor map operation
Unwraps the value within the functor, passes it to the map function f
provided, and
then takes the mapped value and wraps it back up into a new functor.
param | ma | Functor to map |
param | f | Mapping function |
returns | Mapped functor |
method EitherT<L, M, B> Action <L, M, A, B> (this EitherT<L, M, A> ma, K<EitherT<L, M>, B> mb) Source #
Applicative action: runs the first applicative, ignores the result, and returns the second applicative
method EitherT<L, M, B> Action <L, M, A, B> (this K<EitherT<L, M>, A> ma, K<EitherT<L, M>, B> mb) Source #
Applicative action: runs the first applicative, ignores the result, and returns the second applicative
method EitherT<L, M, B> Apply <L, M, A, B> (this EitherT<L, M, Func<A, B>> mf, K<EitherT<L, M>, A> ma) Source #
Applicative functor apply operation
Unwraps the value within the ma
applicative-functor, passes it to the unwrapped function(s) within mf
, and
then takes the resulting value and wraps it back up into a new applicative-functor.
param | ma | Value(s) applicative functor |
param | mf | Mapping function(s) |
returns | Mapped applicative functor |
method EitherT<L, M, B> Apply <L, M, A, B> (this K<EitherT<L, M>, Func<A, B>> mf, K<EitherT<L, M>, A> ma) Source #
Applicative functor apply operation
Unwraps the value within the ma
applicative-functor, passes it to the unwrapped function(s) within mf
, and
then takes the resulting value and wraps it back up into a new applicative-functor.
param | ma | Value(s) applicative functor |
param | mf | Mapping function(s) |
returns | Mapped applicative functor |
Trait implementation for EitherT
type | M | Given monad trait |
method EitherT<L, M, B> map <L, M, A, B> (Func<A, B> f, K<EitherT<L, M>, A> ma) Source #
Functor map operation
Unwraps the value within the functor, passes it to the map function f
provided, and
then takes the mapped value and wraps it back up into a new functor.
param | ma | Functor to map |
param | f | Mapping function |
returns | Mapped functor |
method EitherT<L, M, B> action <L, M, A, B> (K<EitherT<L, M>, A> ma, K<EitherT<L, M>, B> mb) Source #
Applicative action: runs the first applicative, ignores the result, and returns the second applicative
method EitherT<L, M, B> apply <L, M, A, B> (K<EitherT<L, M>, Func<A, B>> mf, K<EitherT<L, M>, A> ma) Source #
Applicative functor apply operation
Unwraps the value within the ma
applicative-functor, passes it to the unwrapped function(s) within mf
, and
then takes the resulting value and wraps it back up into a new applicative-functor.
param | ma | Value(s) applicative functor |
param | mf | Mapping function(s) |
returns | Mapped applicative functor |