blob: 6bdd2e6aaaa0980e91ebc686c8dd38a8c8504e0b [file] [log] [blame]
package pack1;
interface Eff<A, B> {
B f(A a);
}
abstract class POne<A> {
abstract A _1();
static <A> POne<Hooray<A>> sequence(final Hooray<POne<A>> as) {
return new POne<Hooray<A>>() {
public Hooray<A> _1() {
return as.map(POne.<A>__1());
}
};
}
static <A> Eff<POne<A>, A> __1() {
return POne::_1;
}
}
final class Hooray<A> {
public <B> Hooray<B> map(final Eff<A, B> f) {
return null;
}
}