Skip to content

Commit e7ed7ec

Browse files
committed
Add a Monoid for IO
1 parent 0456484 commit e7ed7ec

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

core/src/main/java/fj/Monoid.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import static fj.Function.flip;
55
import fj.data.Array;
66
import fj.data.List;
7+
import fj.data.IO;
8+
import fj.data.IOFunctions;
79
import fj.data.Natural;
810
import fj.data.Option;
911
import fj.data.Set;
@@ -384,6 +386,13 @@ public static <A> Monoid<Array<A>> arrayMonoid() {
384386
return monoid(Semigroup.<A>arraySemigroup(), Array.<A>empty());
385387
}
386388

389+
/**
390+
* A semigroup for IO values.
391+
*/
392+
public static <A> Monoid<IO<A>> ioMonoid(final Monoid <A> ma) {
393+
return monoid(Semigroup.ioSemigroup(ma.semigroup()), IOFunctions.unit(ma.zero()));
394+
}
395+
387396
/**
388397
* A semigroup for the Unit value.
389398
*/

0 commit comments

Comments
 (0)