The Choice type class extends cats.arrow.Profunctor with combinators for working with sum types.
- Type parameters:
- P
type constructor of kind (* -> * -> *)
- See also:
Choice#left and Choice#right lift values in a cats.arrow.Profunctor to act on the Left and Right components of a sum, respectively.
- 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