Skip to content

Commit 44e7f22

Browse files
committed
Effect#noop allows custom parametricity
1 parent 03065e9 commit 44e7f22

2 files changed

Lines changed: 4 additions & 5 deletions

File tree

src/main/java/com/jnape/palatable/lambda/functions/Effect.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ static <A> Effect<A> fromConsumer(Consumer<A> consumer) {
9797
* @param sideEffect the {@link SideEffect}
9898
* @return the {@link Effect}
9999
*/
100-
static Effect<Unit> effect(SideEffect sideEffect) {
100+
static <A> Effect<A> effect(SideEffect sideEffect) {
101101
return effect(constantly(io(sideEffect)));
102102
}
103103

@@ -108,7 +108,7 @@ static Effect<Unit> effect(SideEffect sideEffect) {
108108
*/
109109
@SuppressWarnings("unused")
110110
static <A> Effect<A> noop() {
111-
return effect(NOOP).contraMap(constantly(UNIT));
111+
return effect(NOOP);
112112
}
113113

114114
/**

src/test/java/com/jnape/palatable/lambda/functions/EffectTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.util.concurrent.atomic.AtomicInteger;
1010
import java.util.function.Consumer;
1111

12-
import static com.jnape.palatable.lambda.adt.Unit.UNIT;
1312
import static com.jnape.palatable.lambda.functions.Effect.effect;
1413
import static com.jnape.palatable.lambda.functions.Effect.fromConsumer;
1514
import static com.jnape.palatable.lambda.functions.builtin.fn1.Constantly.constantly;
@@ -51,8 +50,8 @@ public void andThen() {
5150
public void staticFactoryMethods() {
5251
AtomicInteger counter = new AtomicInteger();
5352

54-
Effect<Unit> runnableEffect = effect(counter::incrementAndGet);
55-
runnableEffect.apply(UNIT).unsafePerformIO();
53+
Effect<String> sideEffect = effect(counter::incrementAndGet);
54+
sideEffect.apply("foo").unsafePerformIO();
5655
assertEquals(1, counter.get());
5756

5857
Effect<AtomicInteger> fnEffect = Effect.fromConsumer(AtomicInteger::incrementAndGet);

0 commit comments

Comments
 (0)