//Reader public static MaybeT <Reader <TEnvironment, TResult>, Reader <TEnvironment, Maybe <TResult> >, Maybe <TResult>, TResult> SelectMany <TEnvironment, TSource, TMiddle, TResult> (this MaybeT <Reader <TEnvironment, TSource>, Reader <TEnvironment, Maybe <TSource> >, Maybe <TSource>, TSource> source, Func <TSource, MaybeT <Reader <TEnvironment, TMiddle>, Reader <TEnvironment, Maybe <TMiddle> >, Maybe <TMiddle>, TMiddle> > f, Func <TSource, TMiddle, TResult> resultSelector) { return((MaybeT <Reader <TEnvironment, TResult>, Reader <TEnvironment, Maybe <TResult> >, Maybe <TResult>, TResult>) source.BindT(x => f(x).MapT <Reader <TEnvironment, TResult>, Reader <TEnvironment, Maybe <TResult> >, Maybe <TResult>, TResult>(y => resultSelector(x, y)))); }
//Rws public static MaybeT <Rws <TEnvironment, TOutput, TMonoid, TState, TResult>, Rws <TEnvironment, TOutput, TMonoid, TState, Maybe <TResult> >, Maybe <TResult>, TResult> SelectMany <TEnvironment, TOutput, TMonoid, TState, TSource, TMiddle, TResult> (this MaybeT <Rws <TEnvironment, TOutput, TMonoid, TState, TSource>, Rws <TEnvironment, TOutput, TMonoid, TState, Maybe <TSource> >, Maybe <TSource>, TSource> source, Func <TSource, MaybeT <Rws <TEnvironment, TOutput, TMonoid, TState, TMiddle>, Rws <TEnvironment, TOutput, TMonoid, TState, Maybe <TMiddle> >, Maybe <TMiddle>, TMiddle> > f, Func <TSource, TMiddle, TResult> resultSelector) where TMonoid : IMonoid <TOutput> { return((MaybeT <Rws <TEnvironment, TOutput, TMonoid, TState, TResult>, Rws <TEnvironment, TOutput, TMonoid, TState, Maybe <TResult> >, Maybe <TResult>, TResult>) source.BindT(x => f(x).MapT <Rws <TEnvironment, TOutput, TMonoid, TState, TResult>, Rws <TEnvironment, TOutput, TMonoid, TState, Maybe <TResult> >, Maybe <TResult>, TResult>(y => resultSelector(x, y)))); }