Exemplo n.º 1
0
        public IKind <OptionF, TB> Ap <TA, TB>(IKind <OptionF, Func <TA, TB> > ff, IKind <OptionF, TA> fa)
        {
            var f = ff.Fix();
            var a = fa.Fix();

            return(f.IsSome && a.IsSome
                ? (IKind <OptionF, TB>) new Some <TB>(f.Get()(a.Get()))
                : new None <TB>());
        }
Exemplo n.º 2
0
 public IKind <OptionF, TB> FlatMap <TA, TB>(IKind <OptionF, TA> fa, Func <TA, IKind <OptionF, TB> > f) =>
 fa.Fix().FlatMap(x => f(x).Fix());
Exemplo n.º 3
0
 public IKind <OptionF, TB> Map <TA, TB>(IKind <OptionF, TA> fa, Func <TA, TB> f) =>
 fa.Fix().Map(f);
Exemplo n.º 4
0
 public bool EqK <T>(IKind <OptionF, T> x, IKind <OptionF, T> y, IEq <T> eq) =>
 OptionK.Eq(eq).Eqv(x.Fix(), y.Fix());
Exemplo n.º 5
0
 public IKind <OptionF, TB> XMap <TA, TB>(IKind <OptionF, TA> fa, Func <TA, TB> f, Func <TB, TA> g) =>
 fa.Fix().Map(f);
Exemplo n.º 6
0
 public IKind <TryF, TB> Ap <TA, TB>(IKind <TryF, Func <TA, TB> > ff, IKind <TryF, TA> fa) =>
 ff.Fix().FlatMap(fa.Fix().Map);
Exemplo n.º 7
0
 public IKind <ResultOkF <TError>, TB> FlatMap <TA, TB>(
     IKind <ResultOkF <TError>, TA> fa, Func <TA, IKind <ResultOkF <TError>, TB> > f) =>
 fa.Fix().FlatMap(x => f(x).Fix());
Exemplo n.º 8
0
 public IKind <ResultOkF <TError>, TB> Map <TA, TB>(IKind <ResultOkF <TError>, TA> fa, Func <TA, TB> f) =>
 fa.Fix().Map(f);
Exemplo n.º 9
0
 public IKind <ResultOkF <TError>, TB> Ap <TA, TB>(IKind <ResultOkF <TError>, Func <TA, TB> > ff,
                                                   IKind <ResultOkF <TError>, TA> fa) =>
 ff.Fix().FlatMap(fa.Fix().Map);
Exemplo n.º 10
0
 public IKind <TreeF, TB> Map <TA, TB>(IKind <TreeF, TA> fa, Func <TA, TB> f) =>
 fa.Fix() switch
 {