Skip to content

Commit bf8ee7f

Browse files
committed
Convert Semigroup and CommutativeSemigroup instances to SAM syntax
1 parent 826cc56 commit bf8ee7f

File tree

16 files changed

+27
-50
lines changed

16 files changed

+27
-50
lines changed

algebra-core/src/main/scala/algebra/ring/Multiplicative.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ import scala.{specialized => sp}
2626
import scala.annotation.{nowarn, tailrec}
2727

2828
trait MultiplicativeSemigroup[@sp(Int, Long, Float, Double) A] extends Any with Serializable {
29-
def multiplicative: Semigroup[A] =
30-
Semigroup.instance(times)
29+
def multiplicative: Semigroup[A] = times(_, _)
3130

3231
def times(x: A, y: A): A
3332

@@ -56,8 +55,7 @@ trait MultiplicativeSemigroup[@sp(Int, Long, Float, Double) A] extends Any with
5655
}
5756

5857
trait MultiplicativeCommutativeSemigroup[@sp(Int, Long, Float, Double) A] extends Any with MultiplicativeSemigroup[A] {
59-
override def multiplicative: CommutativeSemigroup[A] =
60-
CommutativeSemigroup.instance(times)
58+
override def multiplicative: CommutativeSemigroup[A] = times(_, _)
6159
}
6260

6361
trait MultiplicativeMonoid[@sp(Int, Long, Float, Double) A] extends Any with MultiplicativeSemigroup[A] {

core/src/main/scala/cats/Align.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ trait Align[F[_]] extends Serializable {
135135

136136
object Align extends ScalaVersionSpecificAlignInstances {
137137
def semigroup[F[_], A](implicit F: Align[F], A: Semigroup[A]): Semigroup[F[A]] =
138-
Semigroup.instance(F.alignCombine[A])
138+
F.alignCombine(_, _)
139139

140140
implicit def catsAlignForList: Align[List] = cats.instances.list.catsStdInstancesForList
141141
implicit def catsAlignForOption: Align[Option] = cats.instances.option.catsStdInstancesForOption

core/src/main/scala/cats/CommutativeApply.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ trait CommutativeApply[F[_]] extends Apply[F]
3636

3737
object CommutativeApply {
3838
def commutativeSemigroupFor[F[_]: CommutativeApply, A: CommutativeSemigroup]: CommutativeSemigroup[F[A]] =
39-
CommutativeSemigroup.instance(CommutativeApply[F].map2(_, _)(CommutativeSemigroup[A].combine))
39+
CommutativeApply[F].map2(_, _)(CommutativeSemigroup[A].combine)
4040

4141
/**
4242
* Summon an instance of [[CommutativeApply]] for `F`.

core/src/main/scala/cats/SemigroupK.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,15 @@ trait SemigroupK[F[_]] extends Serializable { self =>
8686
y.map(yy => combineK(x, yy))
8787

8888
/**
89-
* Given a type A, create a concrete Semigroup[F[A]].
89+
* Given a type A, create a concrete `Semigroup[F[A]]`.
9090
*
9191
* Example:
9292
* {{{
9393
* scala> import cats.implicits._
9494
* scala> val s: Semigroup[List[Int]] = SemigroupK[List].algebra[Int]
9595
* }}}
9696
*/
97-
def algebra[A]: Semigroup[F[A]] =
98-
Semigroup.instance(combineK)
97+
def algebra[A]: Semigroup[F[A]] = combineK(_, _)
9998

10099
/**
101100
* "Compose" with a `G[_]` type to form a `SemigroupK` for `λ[α => F[G[α]]]`.

core/src/main/scala/cats/arrow/Compose.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,7 @@ trait Compose[F[_, _]] extends Serializable { self =>
4949
def combineK[A](f1: F[A, A], f2: F[A, A]): F[A, A] = self.compose(f1, f2)
5050
}
5151

52-
def algebra[A]: Semigroup[F[A, A]] =
53-
Semigroup.instance(compose)
52+
def algebra[A]: Semigroup[F[A, A]] = compose(_, _)
5453
}
5554

5655
object Compose {

core/src/main/scala/cats/data/Const.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,7 @@ sealed abstract private[data] class ConstInstances1 extends ConstInstances2 {
188188

189189
sealed abstract private[data] class ConstInstances2 extends ConstInstances3 {
190190

191-
implicit def catsDataSemigroupForConst[A: Semigroup, B]: Semigroup[Const[A, B]] =
192-
Semigroup.instance(_ combine _)
191+
implicit def catsDataSemigroupForConst[A: Semigroup, B]: Semigroup[Const[A, B]] = _ combine _
193192

194193
implicit def catsDataPartialOrderForConst[A: PartialOrder, B]: PartialOrder[Const[A, B]] = _ partialCompare _
195194

core/src/main/scala/cats/data/Ior.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -861,8 +861,7 @@ sealed abstract private[data] class IorInstances extends IorInstances0 {
861861

862862
implicit def catsDataShowForIor[A: Show, B: Show]: Show[A Ior B] = _.show
863863

864-
implicit def catsDataSemigroupForIor[A: Semigroup, B: Semigroup]: Semigroup[Ior[A, B]] =
865-
Semigroup.instance(_ combine _)
864+
implicit def catsDataSemigroupForIor[A: Semigroup, B: Semigroup]: Semigroup[Ior[A, B]] = _ combine _
866865

867866
implicit def catsDataMonadErrorForIor[A: Semigroup]: MonadError[Ior[A, *], A] =
868867
new MonadError[Ior[A, *], A] {

core/src/main/scala/cats/data/NonEmptyMapImpl.scala

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -371,9 +371,7 @@ sealed abstract private[data] class NonEmptyMapInstances extends NonEmptyMapInst
371371
Band.instance(_ ++ _)
372372

373373
implicit def catsDataSemigroupForNonEmptyMap[K, A: Semigroup]: Semigroup[NonEmptyMap[K, A]] =
374-
Semigroup.instance { (x, y) =>
375-
NonEmptyMap.fromMapUnsafe(Semigroup[SortedMap[K, A]].combine(x.toSortedMap, y.toSortedMap))
376-
}
374+
(x, y) => NonEmptyMap.fromMapUnsafe(Semigroup[SortedMap[K, A]].combine(x.toSortedMap, y.toSortedMap))
377375
}
378376

379377
sealed abstract private[data] class NonEmptyMapInstances0 {

core/src/main/scala/cats/data/Validated.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -974,11 +974,7 @@ sealed abstract private[data] class ValidatedInstances extends ValidatedInstance
974974

975975
sealed abstract private[data] class ValidatedInstances1 extends ValidatedInstances2 {
976976

977-
implicit def catsDataSemigroupForValidated[A, B](implicit
978-
A: Semigroup[A],
979-
B: Semigroup[B]
980-
): Semigroup[Validated[A, B]] =
981-
Semigroup.instance(_ combine _)
977+
implicit def catsDataSemigroupForValidated[A: Semigroup, B: Semigroup]: Semigroup[Validated[A, B]] = _ combine _
982978

983979
implicit def catsDataCommutativeApplicativeForValidated[E: CommutativeSemigroup]
984980
: CommutativeApplicative[Validated[E, *]] =

core/src/main/scala/cats/instances/invariant.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,21 @@ trait InvariantMonoidalInstances {
4545

4646
implicit val catsInvariantMonoidalSemigroup: InvariantMonoidal[Semigroup] = new InvariantMonoidal[Semigroup] {
4747
def product[A, B](fa: Semigroup[A], fb: Semigroup[B]): Semigroup[(A, B)] =
48-
Semigroup.instance((x, y) => fa.combine(x._1, y._1) -> fb.combine(x._2, y._2))
48+
(x, y) => fa.combine(x._1, y._1) -> fb.combine(x._2, y._2)
4949

5050
def imap[A, B](fa: Semigroup[A])(f: A => B)(g: B => A): Semigroup[B] =
51-
Semigroup.instance((x, y) => f(fa.combine(g(x), g(y))))
51+
(x, y) => f(fa.combine(g(x), g(y)))
5252

5353
def unit: Semigroup[Unit] = implicitly
5454
}
5555

5656
implicit val catsInvariantMonoidalCommutativeSemigroup: InvariantMonoidal[CommutativeSemigroup] =
5757
new InvariantMonoidal[CommutativeSemigroup] {
5858
def product[A, B](fa: CommutativeSemigroup[A], fb: CommutativeSemigroup[B]): CommutativeSemigroup[(A, B)] =
59-
CommutativeSemigroup.instance((x, y) => fa.combine(x._1, y._1) -> fb.combine(x._2, y._2))
59+
(x, y) => fa.combine(x._1, y._1) -> fb.combine(x._2, y._2)
6060

6161
def imap[A, B](fa: CommutativeSemigroup[A])(f: A => B)(g: B => A): CommutativeSemigroup[B] =
62-
CommutativeSemigroup.instance((x, y) => f(fa.combine(g(x), g(y))))
62+
(x, y) => f(fa.combine(g(x), g(y)))
6363

6464
def unit: CommutativeSemigroup[Unit] = implicitly
6565
}

0 commit comments

Comments
 (0)