- Trans <OuterMonad, OuterType, InnerMonad, InnerType, A>
- Inst
- Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewInnerType> f)
- Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewOuterType> f)
- BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewOuterType> f)
- Map <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f)
- Fold <S> (OuterType ma, S state, Func<S, A, S> f)
- FoldBack <S> (OuterType ma, S state, Func<S, A, S> f)
- Count (OuterType ma)
- Sequence <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType> (OuterType ma)
- Traverse <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f)
- Plus (OuterType ma, OuterType mb)
- Zero ()
- Trans <OuterMonad, OuterType, InnerMonad, InnerType, NumA, A>
- TransAsync <OuterMonad, OuterType, InnerMonad, InnerType, A>
- Inst
- Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewInnerType> f)
- BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<NewInnerType>> f)
- Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewOuterType> f)
- BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<NewOuterType>> f)
- Map <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f)
- MapAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<B>> f)
- Fold <S> (OuterType ma, S state, Func<S, A, S> f)
- FoldBack <S> (OuterType ma, S state, Func<S, A, S> f)
- FoldAsync <S> (OuterType ma, S state, Func<S, A, Task<S>> f)
- FoldBackAsync <S> (OuterType ma, S state, Func<S, A, Task<S>> f)
- CountAsync (OuterType ma)
- Sequence <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType> (OuterType ma)
- Traverse <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f)
- TraverseAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<B>> f)
- Plus (OuterType ma, OuterType mb)
- Zero ()
- TransAsync <OuterMonad, OuterType, InnerMonad, InnerType, NumA, A>
- TransAsyncSync <OuterMonad, OuterType, InnerMonad, InnerType, A>
- Inst
- SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, NewOuterB> bind, Func<A, B, C> project)
- Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewInnerType> f)
- BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewOuterType> f)
- Map <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f)
- Fold <S> (OuterType ma, S state, Func<S, A, S> f)
- FoldBack <S> (OuterType ma, S state, Func<S, A, S> f)
- Count (OuterType ma)
- Plus (OuterType ma, OuterType mb)
- Zero ()
- TransAsyncSync <OuterMonad, OuterType, InnerMonad, InnerType, NumA, A>
- TransSyncAsync <OuterMonad, OuterType, InnerMonad, InnerType, A>
- Inst
- SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, NewInnerB> bind, Func<A, B, C> project)
- SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, Task<NewInnerB>> bind, Func<A, B, C> project)
- SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, NewInnerB> bind, Func<A, B, Task<C>> project)
- SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, Task<NewInnerB>> bind, Func<A, B, Task<C>> project)
- Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewInnerType> f)
- BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<NewInnerType>> f)
- Map <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f)
- MapAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<B>> f)
- Fold <S> (OuterType ma, S state, Func<S, A, S> f)
- FoldBack <S> (OuterType ma, S state, Func<S, A, S> f)
- FoldAsync <S> (OuterType ma, S state, Func<S, A, Task<S>> f)
- FoldBackAsync <S> (OuterType ma, S state, Func<S, A, Task<S>> f)
- Count (OuterType ma)
- Sequence <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType> (OuterType ma)
- Traverse <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f)
- TraverseAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<B>> f)
- Plus (OuterType ma, OuterType mb)
- Zero ()
- TransSyncAsync <OuterMonad, OuterType, InnerMonad, InnerType, NumA, A>
struct Trans <OuterMonad, OuterType, InnerMonad, InnerType, A> Source #
Default monad transformer, can nest any two monadic types and provide the correct default behaviour based on their Bind operations.
i.e.
Trans<MLst<Option<int>>, Lst<Option<int>>, MOption<int>, Option<int>, int>
method NewOuterType Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewInnerType> f) Source #
method NewOuterType Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewOuterType> f) Source #
method NewOuterType BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewOuterType> f) Source #
method NewOuterType Map <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f) Source #
method NewOuterType Sequence <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType> (OuterType ma) Source #
struct Trans <OuterMonad, OuterType, InnerMonad, InnerType, NumA, A> Source #
struct TransAsync <OuterMonad, OuterType, InnerMonad, InnerType, A> Source #
Default monad transformer, can nest any two monadic types and provide the correct default behaviour based on their Bind operations.
i.e.
TransAsync<MTask<TryAsync<int>>, Lst<Task<TryAsync>>, MTryAsync<int>, TryAsync<int>, int>
method NewOuterType Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewInnerType> f) Source #
method NewOuterType BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<NewInnerType>> f) Source #
method NewOuterType Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewOuterType> f) Source #
method NewOuterType BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<NewOuterType>> f) Source #
method NewOuterType Map <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f) Source #
method NewOuterType MapAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<B>> f) Source #
method Task<S> FoldBackAsync <S> (OuterType ma, S state, Func<S, A, Task<S>> f) Source #
method Task<int> CountAsync (OuterType ma) Source #
method NewOuterType Sequence <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType> (OuterType ma) Source #
method NewOuterType Traverse <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f) Source #
method NewOuterType TraverseAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<B>> f) Source #
struct TransAsync <OuterMonad, OuterType, InnerMonad, InnerType, NumA, A> Source #
struct TransAsyncSync <OuterMonad, OuterType, InnerMonad, InnerType, A> Source #
Default monad transformer, can nest any two monadic types and provide the correct default behaviour based on their Bind operations.
i.e.
TransSyncAsync<MSeq<TryAsync<int>>, Seq<TryAsync<int>>, MTryAsync<int>, TryAsync<int>, int>
method NewOuterC SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, NewOuterB> bind, Func<A, B, C> project) Source #
method NewOuterType Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewInnerType> f) Source #
method NewOuterType BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewOuterType> f) Source #
struct TransAsyncSync <OuterMonad, OuterType, InnerMonad, InnerType, NumA, A> Source #
struct TransSyncAsync <OuterMonad, OuterType, InnerMonad, InnerType, A> Source #
Default monad transformer, can nest any two monadic types and provide the correct default behaviour based on their Bind operations.
i.e.
TransSyncAsync<MSeq<TryAsync<int>>, Seq<TryAsync<int>>, MTryAsync<int>, TryAsync<int>, int>
method NewOuterC SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, NewInnerB> bind, Func<A, B, C> project) Source #
method NewOuterC SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, Task<NewInnerB>> bind, Func<A, B, C> project) Source #
method NewOuterC SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, NewInnerB> bind, Func<A, B, Task<C>> project) Source #
method NewOuterC SelectManyAsync <NewOuterMonadB, NewOuterB, NewInnerMonadB, NewInnerB, B, NewOuterMonadC, NewOuterC, NewInnerMonadC, NewInnerC, C> ( OuterType ma, Func<A, Task<NewInnerB>> bind, Func<A, B, Task<C>> project) Source #
method NewOuterType Bind <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, NewInnerType> f) Source #
method NewOuterType BindAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<NewInnerType>> f) Source #
method NewOuterType Map <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f) Source #
method NewOuterType MapAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<B>> f) Source #
method Task<S> FoldBackAsync <S> (OuterType ma, S state, Func<S, A, Task<S>> f) Source #
method NewOuterType Sequence <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType> (OuterType ma) Source #
method NewOuterType Traverse <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, B> f) Source #
method NewOuterType TraverseAsync <NewOuterMonad, NewOuterType, NewInnerMonad, NewInnerType, B> (OuterType ma, Func<A, Task<B>> f) Source #
struct TransSyncAsync <OuterMonad, OuterType, InnerMonad, InnerType, NumA, A> Source #