The Closed type class extends the Profunctor class to work with functions.
A cats.arrow.Strong cats.arrow.Profunctor allows the monoidal structure to pass through.
A Closed cats.arrow.Profunctor allows the closed structure to pass through
- Companion:
- object
Value members
Abstract methods
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