diff --git a/core/src/main/scala/cats/syntax/package.scala b/core/src/main/scala/cats/syntax/package.scala index 6ce9e45ff98..f0b716eb7d0 100644 --- a/core/src/main/scala/cats/syntax/package.scala +++ b/core/src/main/scala/cats/syntax/package.scala @@ -1,7 +1,7 @@ package cats package object syntax { - object all extends AllSyntax + object all extends AllSyntax with TraverseSyntaxBinCompat0 object alternative extends AlternativeSyntax object applicative extends ApplicativeSyntax object applicativeError extends ApplicativeErrorSyntax @@ -44,7 +44,7 @@ package object syntax { object semigroupk extends SemigroupKSyntax object show extends ShowSyntax object strong extends StrongSyntax - object traverse extends TraverseSyntax + object traverse extends TraverseSyntax with TraverseSyntaxBinCompat0 object nonEmptyTraverse extends NonEmptyTraverseSyntax object validated extends ValidatedSyntax object vector extends VectorSyntax diff --git a/core/src/main/scala/cats/syntax/traverse.scala b/core/src/main/scala/cats/syntax/traverse.scala index 9205507f3b7..1fc402751f7 100644 --- a/core/src/main/scala/cats/syntax/traverse.scala +++ b/core/src/main/scala/cats/syntax/traverse.scala @@ -2,3 +2,4 @@ package cats package syntax trait TraverseSyntax extends Traverse.ToTraverseOps +trait TraverseSyntaxBinCompat0 extends UnorderedTraverse.ToUnorderedTraverseOps diff --git a/testkit/src/main/scala/cats/tests/CatsSuite.scala b/testkit/src/main/scala/cats/tests/CatsSuite.scala index eba024e1e8f..8faa6fa40b6 100644 --- a/testkit/src/main/scala/cats/tests/CatsSuite.scala +++ b/testkit/src/main/scala/cats/tests/CatsSuite.scala @@ -5,6 +5,7 @@ import catalysts.Platform import cats.instances.AllInstances import cats.syntax.{AllSyntax, EqOps} +import cats.syntax.TraverseSyntaxBinCompat0 import org.scalactic.anyvals.{PosZDouble, PosInt, PosZInt} import org.scalatest.{FunSuite, FunSuiteLike, Matchers} @@ -37,6 +38,7 @@ trait CatsSuite extends FunSuite with TestSettings with AllInstances with AllSyntax + with TraverseSyntaxBinCompat0 with StrictCatsEquality { self: FunSuiteLike => implicit override val generatorDrivenConfig: PropertyCheckConfiguration = diff --git a/tests/src/test/scala/cats/tests/TraverseSuite.scala b/tests/src/test/scala/cats/tests/TraverseSuite.scala index b912201a9bc..ab7efc08b8b 100644 --- a/tests/src/test/scala/cats/tests/TraverseSuite.scala +++ b/tests/src/test/scala/cats/tests/TraverseSuite.scala @@ -74,3 +74,11 @@ class TraverseSuiteAdditional extends CatsSuite { checkZipWithIndexedStackSafety[Vector](_.toVector) } } + +class UnorderedTraverseSuite extends CatsSuite { + test("UnorderedTraverse[Set[Int]].unorderedTraverse via syntax") { + forAll { (ins: Set[Int]) => + ins.unorderedTraverse(in => in: Id[Int]).toList.sorted should === (ins.toList.sorted) + } + } +}