I am using the Cats library. In Scala the code looks like:
import cats.Semigroupal
import cats.instances.option._
val r = Semigroupal.tuple2(Option(1), Option(2))
The tuple2
defined as:
def tuple2[F[_], A0, A1](f0:F[A0], f1:F[A1])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1)]
The following implicit value is actually passed both as Semigroupal
and as Invariant
(checked via Intellij IDEA plugin for Scala):
package cats
package instances
trait OptionInstances ...
implicit val catsStdInstancesForOption: ...
How to pass catsStdInstancesForOption
in tuple2
function from Java code?
Semigroupal$.MODULE$.tuple2(
Option.apply(1), Option.apply(2),
...,// and here?
... //here
);
Dependency on the Cats library, if needed:
<cats.core.version>1.5.0</cats.core.version>
...
<!-- https://mvnrepository.com/artifact/org.typelevel/cats-core -->
<dependency>
<groupId>org.typelevel</groupId>
<artifactId>cats-core_2.12</artifactId>
<version>${cats.core.version}</version>
</dependency>