mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-10 13:17:09 +07:00
switch tests on new inference
(cherry picked from commit d2cbf3f2833104c3a0381059b0d6ef8ac0b3c94c)
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
||||
interface Eff<A, B> {
|
||||
B f(A a);
|
||||
}
|
||||
|
||||
class Disfunction {
|
||||
public static <A, B, C> Eff<C, B> apply(final Eff<C, Eff<A, B>> cab, final Eff<C, A> ca) {
|
||||
return bind(cab, f -> compose(a -> f.f(a), ca));
|
||||
}
|
||||
|
||||
public static <A, B, C> Eff<C, B> bind(final Eff<C, A> ma, final Eff<A, Eff<C, B>> f) {
|
||||
return m -> f.f(ma.f(m)).f(m);
|
||||
}
|
||||
|
||||
public static <A, B, C> Eff<A, C> compose(final Eff<B, C> f, final Eff<A, B> g) {
|
||||
return a -> f.f(g.f(a));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user