public SelectCore(IIOMonad <T> self, Func <T, TResult> selector) { _self = self; _selector = selector; }
public SelectManyCore(IIOMonad <T> self, Func <T, IIOMonad <TResult> > selector) { _self = self; _selector = selector; }
public static IIOMonad <TResult> Select <T, TResult>(this IIOMonad <T> self, Func <T, TResult> selector) { return(new SelectCore <T, TResult>(self, selector)); }
public ShareCore(IIOMonad <T> self) { _self = self; _lazy = Lazy.Create <T>(RunSelf); }
public static IIOMonad <TResult> SelectMany <TFirst, TSecond, TResult>(this IIOMonad <TFirst> self, Func <TFirst, IIOMonad <TSecond> > selector, Func <TFirst, TSecond, TResult> projector) { return(new SelectManyCore <TFirst, TSecond, TResult>(self, selector, projector)); }
public static IIOMonad <T> If <T>(IIOMonad <T> thenSource, IIOMonad <T> elseSource, Func <bool> selector) { return(new IfStaticCore <T>(thenSource, elseSource, selector)); }
public static IIOMonad <T> Share <T>(this IIOMonad <T> self) { return(new ShareCore <T>(self)); }
public static void Execute <T>(this IIOMonad <T> self) { self.RunIO(); }
public IfStaticCore(IIOMonad <T> thenSource, IIOMonad <T> elseSource, Func <bool> selector) { _thenSource = thenSource; _elseSource = elseSource; _selector = selector; }
public DoCore(IIOMonad <T> self, Action <T> action) { _self = self; _action = action; }
public static void Execute <T>(this IIOMonad <T> self, Action <T> onValue) { T result = self.RunIO(); onValue(result); }
public static IIOMonad <T> Do <T>(this IIOMonad <T> self, Action <T> action) { return(new DoCore <T>(self, action)); }
public static IIOMonad <T> If <T>(this IIOMonad <T> self, IIOMonad <T> elseSource, Func <T, bool> selector) { return(new IfCore <T>(self, elseSource, selector)); }
public IfCore(IIOMonad <T> self, IIOMonad <T> elseSource, Func <T, bool> selector) { _self = self; _elseSource = elseSource; _selector = selector; }
public ToIdentityCore(IIOMonad <T> self) { _self = self; _lazy = Lazy.Create <T>(RunSelf); }
public static IIdentityMonad <T> ToIdentity <T>(this IIOMonad <T> self) { return(new ToIdentityCore <T>(self)); }