diff --git a/arrow-libs/core/arrow-core/api/arrow-core.api b/arrow-libs/core/arrow-core/api/arrow-core.api
index ac9aed03e72..d5ffc5138ff 100644
--- a/arrow-libs/core/arrow-core/api/arrow-core.api
+++ b/arrow-libs/core/arrow-core/api/arrow-core.api
@@ -3107,7 +3107,7 @@ public abstract interface class arrow/typeclasses/Monoid : arrow/typeclasses/Sem
public abstract fun combineAll (Ljava/util/Collection;)Ljava/lang/Object;
public abstract fun combineAll (Ljava/util/List;)Ljava/lang/Object;
public static fun constant (Larrow/typeclasses/Monoid;)Larrow/typeclasses/Monoid;
- public static fun either (Larrow/typeclasses/Monoid;Larrow/typeclasses/Monoid;)Larrow/typeclasses/Monoid;
+ public static fun either (Larrow/typeclasses/Semigroup;Larrow/typeclasses/Monoid;)Larrow/typeclasses/Monoid;
public abstract fun empty ()Ljava/lang/Object;
public static fun endo ()Larrow/typeclasses/Monoid;
public abstract fun fold (Ljava/util/Collection;)Ljava/lang/Object;
@@ -3128,7 +3128,7 @@ public final class arrow/typeclasses/Monoid$Companion {
public final fun Long ()Larrow/typeclasses/Monoid;
public final fun Short ()Larrow/typeclasses/Monoid;
public final fun constant (Larrow/typeclasses/Monoid;)Larrow/typeclasses/Monoid;
- public final fun either (Larrow/typeclasses/Monoid;Larrow/typeclasses/Monoid;)Larrow/typeclasses/Monoid;
+ public final fun either (Larrow/typeclasses/Semigroup;Larrow/typeclasses/Monoid;)Larrow/typeclasses/Monoid;
public final fun endo ()Larrow/typeclasses/Monoid;
public final fun list ()Larrow/typeclasses/Monoid;
public final fun map (Larrow/typeclasses/Semigroup;)Larrow/typeclasses/Monoid;
diff --git a/arrow-libs/core/arrow-core/src/commonMain/kotlin/arrow/typeclasses/Monoid.kt b/arrow-libs/core/arrow-core/src/commonMain/kotlin/arrow/typeclasses/Monoid.kt
index 3de4fd8bcfa..6b88f4152c7 100644
--- a/arrow-libs/core/arrow-core/src/commonMain/kotlin/arrow/typeclasses/Monoid.kt
+++ b/arrow-libs/core/arrow-core/src/commonMain/kotlin/arrow/typeclasses/Monoid.kt
@@ -76,8 +76,8 @@ public interface Monoid : Semigroup {
public fun string(): Monoid = StringMonoid
@JvmStatic
- public fun either(MA: Monoid, MB: Monoid): Monoid> =
- EitherMonoid(MA, MB)
+ public fun either(SGA: Semigroup, MB: Monoid): Monoid> =
+ EitherMonoid(SGA, MB)
@JvmStatic
public fun endo(): Monoid> =
@@ -191,22 +191,22 @@ public interface Monoid : Semigroup {
}
private class EitherMonoid(
- private val MOL: Monoid,
+ private val SGOL: Semigroup,
private val MOR: Monoid
) : Monoid> {
override fun empty(): Either = Either.Right(MOR.empty())
override fun Either.combine(b: Either): Either =
- combine(MOL, MOR, b)
+ combine(SGOL, MOR, b)
override fun Collection>.fold(): Either =
- fold(either(MOL, MOR))
+ fold(either(SGOL, MOR))
override fun fold(elems: List>): Either =
- elems.fold(either(MOL, MOR))
+ elems.fold(either(SGOL, MOR))
override fun Either.maybeCombine(b: Either?): Either =
- b?.let { combine(MOL, MOR, it) } ?: this
+ b?.let { combine(SGOL, MOR, it) } ?: this
}
private class PairMonoid(