public EitherTC <TLeft, TReturn> Apply <TReturn>(EitherTC <TLeft, Func <TRight, TReturn> > f) { if (f.IsRight) { return(this.FMap <TReturn>(f.ToRight().Value)); } else { return(EitherTC <TLeft> .Left <TReturn>(f.ToLeft().Value)); } }
public EitherTC <TLeft, TReturn> ApplyRight <TReturn>(EitherTC <TLeft, TReturn> other) { return(other); }
public EitherTC <TLeft, TRight> ApplyLeft <TReturn>(EitherTC <TLeft, TReturn> other) { return(this); }
public override EitherTC <TLeft, TReturn> ComputeWith <TReturn>(Func <TRight, EitherTC <TLeft, TReturn> > f) { return(EitherTC <TLeft> .Left <TReturn>(this.Value)); }