Must obey the laws defined in cats.laws.StrongLaws.
Must obey the laws defined in cats.laws.StrongLaws.
- Companion
- object
Value members
Abstract methods
Create a new F
that takes two inputs, but only modifies the first input
Create a new F
that takes two inputs, but only modifies the first input
Example:
scala> import cats.implicits._
scala> import cats.arrow.Strong
scala> val f: Int => Int = _ * 2
scala> val fab = Strong[Function1].first[Int,Int,Int](f)
scala> fab((2,3))
res0: (Int, Int) = (4,3)
Create a new F
that takes two inputs, but only modifies the second input
Create a new F
that takes two inputs, but only modifies the second input
Example:
scala> import cats.implicits._
scala> import cats.arrow.Strong
scala> val f: Int => Int = _ * 2
scala> val fab = Strong[Function1].second[Int,Int,Int](f)
scala> fab((2,3))
res0: (Int, Int) = (2,6)
Inherited methods
Contramap on the first type parameter and map on the second type parameter
Contramap on the first type parameter and map on the second type parameter
Example:
scala> import cats.implicits._
scala> import cats.arrow.Profunctor
scala> val fab: Double => Double = x => x + 0.3
scala> val f: Int => Double = x => x.toDouble / 2
scala> val g: Double => Double = x => x * 3
scala> val h = Profunctor[Function1].dimap(fab)(f)(g)
scala> h(3)
res0: Double = 5.4
- Inherited from
- Profunctor
Narrows A into a subtype AA. Example:
Narrows A into a subtype AA. Example:
scala> import cats.syntax.profunctor._
scala> import cats.instances.function._
scala>
scala> sealed trait Foo
scala> case object Bar extends Foo
scala> val x1: Foo => Int = _ => 1
scala> val x2: Bar.type => Int = x1.leftNarrow
- Inherited from
- Profunctor
contramap on the first type parameter
contramap on the first type parameter
- Inherited from
- Profunctor
Widens B into a supertype BB. Example:
Widens B into a supertype BB. Example:
scala> import cats.syntax.profunctor._
scala> import cats.instances.function._
scala>
scala> sealed trait Foo
scala> case object Bar extends Foo
scala> val x1: Int => Bar.type = _ => Bar
scala> val x2: Int => Foo = x1.rightWiden
- Inherited from
- Profunctor