trait TraverseFilter[F[_]] extends Traverse[F] with FunctorFilter[F] with Serializable
TraverseFilter
, also known as Witherable
, represents list-like structures
that can essentially have a traverse and a filter applied as a single
combined operation (traverseFilter).
Must obey the laws defined in cats.laws.TraverseFilterLaws.
Based on Haskell's Data.Witherable
- Self Type
- TraverseFilter[F]
- Alphabetic
- By Inheritance
- TraverseFilter
- FunctorFilter
- Traverse
- Foldable
- Functor
- Invariant
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
foldLeft[A, B](fa: F[A], b: B)(f: (B, A) ⇒ B): B
Left associative fold on 'F' using the function 'f'.
Left associative fold on 'F' using the function 'f'.
- Definition Classes
- Foldable
-
abstract
def
foldRight[A, B](fa: F[A], lb: Eval[B])(f: (A, Eval[B]) ⇒ Eval[B]): Eval[B]
Right associative lazy fold on
F
using the folding function 'f'.Right associative lazy fold on
F
using the folding function 'f'.This method evaluates
lb
lazily (in some cases it will not be needed), and returns a lazy value. We are using(A, Eval[B]) => Eval[B]
to support laziness in a stack-safe way. Chained computation should be performed via .map and .flatMap.For more detailed information about how this method works see the documentation for
Eval[_]
.- Definition Classes
- Foldable
-
abstract
def
traverseFilter[G[_], A, B](fa: F[A])(f: (A) ⇒ G[Option[B]])(implicit arg0: Applicative[G]): G[F[B]]
A combined traverse and filter.
A combined traverse and filter. Filtering is handled via
Option
instead ofBoolean
such that the output typeB
can be different than the input typeA
.Example:
scala> import cats.implicits._ scala> val m: Map[Int, String] = Map(1 -> "one", 3 -> "three") scala> val l: List[Int] = List(1, 2, 3, 4) scala> def asString(i: Int): Eval[Option[String]] = Now(m.get(i)) scala> val result: Eval[List[String]] = l.traverseFilter(asString) scala> result.value res0: List[String] = List(one, three)
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
as[A, B](fa: F[A], b: B): F[B]
Replaces the
A
value inF[A]
with the supplied value.Replaces the
A
value inF[A]
with the supplied value.- Definition Classes
- Functor
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
collect[A, B](fa: F[A])(f: PartialFunction[A, B]): F[B]
Similar to mapFilter but uses a partial function instead of a function that returns an
Option
.Similar to mapFilter but uses a partial function instead of a function that returns an
Option
.Example:
scala> import cats.implicits._ scala> val l: List[Int] = List(1, 2, 3, 4) scala> FunctorFilter[List].collect(l){ | case 1 => "one" | case 3 => "three" | } res0: List[String] = List(one, three)
- Definition Classes
- FunctorFilter
-
def
combineAll[A](fa: F[A])(implicit arg0: Monoid[A]): A
Alias for fold.
-
def
compose[G[_]](implicit arg0: Traverse[G]): Traverse[[α]F[G[α]]]
- Definition Classes
- Traverse
-
def
compose[G[_]](implicit arg0: Foldable[G]): Foldable[[α]F[G[α]]]
- Definition Classes
- Foldable
-
def
compose[G[_]](implicit arg0: Functor[G]): Functor[[α]F[G[α]]]
- Definition Classes
- Functor
-
def
compose[G[_]](implicit arg0: Invariant[G]): Invariant[[α]F[G[α]]]
- Definition Classes
- Invariant
- def composeContravariant[G[_]](implicit arg0: Contravariant[G]): Contravariant[[α]F[G[α]]]
-
def
composeFilter[G[_]](implicit arg0: TraverseFilter[G]): TraverseFilter[[α]F[G[α]]]
- Definition Classes
- Traverse
-
def
composeFilter[G[_]](implicit arg0: FunctorFilter[G]): FunctorFilter[[α]F[G[α]]]
- Definition Classes
- Functor
-
def
composeFunctor[G[_]](implicit arg0: Functor[G]): Invariant[[α]F[G[α]]]
- Definition Classes
- Invariant
-
def
dropWhile_[A](fa: F[A])(p: (A) ⇒ Boolean): List[A]
Convert F[A] to a List[A], dropping all initial elements which match
p
.Convert F[A] to a List[A], dropping all initial elements which match
p
.- Definition Classes
- Foldable
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
exists[A](fa: F[A])(p: (A) ⇒ Boolean): Boolean
Check whether at least one element satisfies the predicate.
Check whether at least one element satisfies the predicate.
If there are no elements, the result is
false
.- Definition Classes
- Foldable
-
def
filter[A](fa: F[A])(f: (A) ⇒ Boolean): F[A]
Apply a filter to a structure such that the output structure contains all
A
elements in the input structure that satisfy the predicatef
but none that don't.Apply a filter to a structure such that the output structure contains all
A
elements in the input structure that satisfy the predicatef
but none that don't.- Definition Classes
- TraverseFilter → FunctorFilter
-
def
filterA[G[_], A](fa: F[A])(f: (A) ⇒ G[Boolean])(implicit G: Applicative[G]): G[F[A]]
Filter values inside a
G
context.Filter values inside a
G
context.This is a generalized version of Haskell's filterM. This StackOverflow question about
filterM
may be helpful in understanding how it behaves.Example:
scala> import cats.implicits._ scala> val l: List[Int] = List(1, 2, 3, 4) scala> def odd(i: Int): Eval[Boolean] = Now(i % 2 == 1) scala> val res: Eval[List[Int]] = l.filterA(odd) scala> res.value res0: List[Int] = List(1, 3) scala> List(1, 2, 3).filterA(_ => List(true, false)) res1: List[List[Int]] = List(List(1, 2, 3), List(1, 2), List(1, 3), List(1), List(2, 3), List(2), List(3), List())
-
def
filter_[A](fa: F[A])(p: (A) ⇒ Boolean): List[A]
Convert F[A] to a List[A], only including elements which match
p
.Convert F[A] to a List[A], only including elements which match
p
.- Definition Classes
- Foldable
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
find[A](fa: F[A])(f: (A) ⇒ Boolean): Option[A]
Find the first element matching the predicate, if one exists.
Find the first element matching the predicate, if one exists.
- Definition Classes
- Foldable
-
def
flatSequence[G[_], A](fgfa: F[G[F[A]]])(implicit G: Applicative[G], F: FlatMap[F]): G[F[A]]
Thread all the G effects through the F structure and flatten to invert the structure from F[G[F[A]]] to G[F[A]].
Thread all the G effects through the F structure and flatten to invert the structure from F[G[F[A]]] to G[F[A]].
Example:
scala> import cats.implicits._ scala> val x: List[Option[List[Int]]] = List(Some(List(1, 2)), Some(List(3))) scala> val y: List[Option[List[Int]]] = List(None, Some(List(3))) scala> x.flatSequence res0: Option[List[Int]] = Some(List(1, 2, 3)) scala> y.flatSequence res1: Option[List[Int]] = None
- Definition Classes
- Traverse
-
def
flatTraverse[G[_], A, B](fa: F[A])(f: (A) ⇒ G[F[B]])(implicit G: Applicative[G], F: FlatMap[F]): G[F[B]]
A traverse followed by flattening the inner result.
A traverse followed by flattening the inner result.
Example:
scala> import cats.implicits._ scala> def parseInt(s: String): Option[Int] = Either.catchOnly[NumberFormatException](s.toInt).toOption scala> val x = Option(List("1", "two", "3")) scala> x.flatTraverse(_.map(parseInt)) res0: List[Option[Int]] = List(Some(1), None, Some(3))
- Definition Classes
- Traverse
-
def
flattenOption[A](fa: F[Option[A]]): F[A]
"Flatten" out a structure by collapsing
Option
s."Flatten" out a structure by collapsing
Option
s.Example:
scala> import cats.implicits._ scala> val l: List[Option[Int]] = List(Some(1), None, Some(3), None) scala> l.flattenOption res0: List[Int] = List(1, 3)
- Definition Classes
- FunctorFilter
-
def
fold[A](fa: F[A])(implicit A: Monoid[A]): A
Fold implemented using the given Monoid[A] instance.
Fold implemented using the given Monoid[A] instance.
- Definition Classes
- Foldable
-
def
foldK[G[_], A](fga: F[G[A]])(implicit G: MonoidK[G]): G[A]
Fold implemented using the given
MonoidK[G]
instance.Fold implemented using the given
MonoidK[G]
instance.This method is identical to fold, except that we use the universal monoid (
MonoidK[G]
) to get aMonoid[G[A]]
instance.For example:
scala> import cats.implicits._ scala> val F = Foldable[List] scala> F.foldK(List(1 :: 2 :: Nil, 3 :: 4 :: 5 :: Nil)) res0: List[Int] = List(1, 2, 3, 4, 5)
- Definition Classes
- Foldable
-
def
foldM[G[_], A, B](fa: F[A], z: B)(f: (B, A) ⇒ G[B])(implicit G: Monad[G]): G[B]
Left associative monadic folding on
F
.Left associative monadic folding on
F
.The default implementation of this is based on
foldLeft
, and thus will always fold across the entire structure. Certain structures are able to implement this in such a way that folds can be short-circuited (not traverse the entirety of the structure), depending on theG
result produced at a given step.- Definition Classes
- Foldable
-
def
foldMap[A, B](fa: F[A])(f: (A) ⇒ B)(implicit B: Monoid[B]): B
Fold implemented by mapping
A
values intoB
and then combining them using the givenMonoid[B]
instance.Fold implemented by mapping
A
values intoB
and then combining them using the givenMonoid[B]
instance.- Definition Classes
- Foldable
-
def
foldMapM[G[_], A, B](fa: F[A])(f: (A) ⇒ G[B])(implicit G: Monad[G], B: Monoid[B]): G[B]
Monadic folding on
F
by mappingA
values toG[B]
, combining theB
values using the givenMonoid[B]
instance.Monadic folding on
F
by mappingA
values toG[B]
, combining theB
values using the givenMonoid[B]
instance.Similar to foldM, but using a
Monoid[B]
.scala> import cats.Foldable scala> import cats.implicits._ scala> val evenNumbers = List(2,4,6,8,10) scala> val evenOpt: Int => Option[Int] = | i => if (i % 2 == 0) Some(i) else None scala> Foldable[List].foldMapM(evenNumbers)(evenOpt) res0: Option[Int] = Some(30) scala> Foldable[List].foldMapM(evenNumbers :+ 11)(evenOpt) res1: Option[Int] = None
- Definition Classes
- Foldable
-
def
forall[A](fa: F[A])(p: (A) ⇒ Boolean): Boolean
Check whether all elements satisfy the predicate.
Check whether all elements satisfy the predicate.
If there are no elements, the result is
true
.- Definition Classes
- Foldable
-
def
fproduct[A, B](fa: F[A])(f: (A) ⇒ B): F[(A, B)]
Tuple the values in fa with the result of applying a function with the value
Tuple the values in fa with the result of applying a function with the value
- Definition Classes
- Functor
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- def imap[A, B](fa: F[A])(f: (A) ⇒ B)(fi: (B) ⇒ A): F[B]
-
def
intercalate[A](fa: F[A], a: A)(implicit A: Monoid[A]): A
Intercalate/insert an element between the existing elements while folding.
Intercalate/insert an element between the existing elements while folding.
scala> import cats.implicits._ scala> Foldable[List].intercalate(List("a","b","c"), "-") res0: String = a-b-c scala> Foldable[List].intercalate(List("a"), "-") res1: String = a scala> Foldable[List].intercalate(List.empty[String], "-") res2: String = "" scala> Foldable[Vector].intercalate(Vector(1,2,3), 1) res3: Int = 8
- Definition Classes
- Foldable
-
def
intersperseList[A](xs: List[A], x: A): List[A]
- Attributes
- protected
- Definition Classes
- Foldable
-
def
isEmpty[A](fa: F[A]): Boolean
Returns true if there are no elements.
Returns true if there are no elements. Otherwise false.
- Definition Classes
- Foldable
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
lift[A, B](f: (A) ⇒ B): (F[A]) ⇒ F[B]
Lift a function f to operate on Functors
Lift a function f to operate on Functors
- Definition Classes
- Functor
- def map[A, B](fa: F[A])(f: (A) ⇒ B): F[B]
-
def
mapFilter[A, B](fa: F[A])(f: (A) ⇒ Option[B]): F[B]
A combined map and filter. Filtering is handled via
Option
instead ofBoolean
such that the output typeB
can be different than the input typeA
.Example:
scala> import cats.implicits._ scala> val m: Map[Int, String] = Map(1 -> "one", 3 -> "three") scala> val l: List[Int] = List(1, 2, 3, 4) scala> def asString(i: Int): Option[String] = m.get(i) scala> l.mapFilter(i => m.get(i)) res0: List[String] = List(one, three)
- Definition Classes
- TraverseFilter → FunctorFilter
-
def
maximumOption[A](fa: F[A])(implicit A: Order[A]): Option[A]
Find the maximum
A
item in this structure according to theOrder[A]
.Find the maximum
A
item in this structure according to theOrder[A]
.- returns
None
if the structure is empty, otherwise the maximum element wrapped in aSome
.
- Definition Classes
- Foldable
- See also
minimumOption for minimum instead of maximum.
Reducible#maximum for a version that doesn't need to return an
Option
for structures that are guaranteed to be non-empty.
-
def
minimumOption[A](fa: F[A])(implicit A: Order[A]): Option[A]
Find the minimum
A
item in this structure according to theOrder[A]
.Find the minimum
A
item in this structure according to theOrder[A]
.- returns
None
if the structure is empty, otherwise the minimum element wrapped in aSome
.
- Definition Classes
- Foldable
- See also
maximumOption for maximum instead of minimum.
Reducible#minimum for a version that doesn't need to return an
Option
for structures that are guaranteed to be non-empty.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nonEmpty[A](fa: F[A]): Boolean
- Definition Classes
- Foldable
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
reduceLeftOption[A](fa: F[A])(f: (A, A) ⇒ A): Option[A]
Reduce the elements of this structure down to a single value by applying the provided aggregation function in a left-associative manner.
Reduce the elements of this structure down to a single value by applying the provided aggregation function in a left-associative manner.
- returns
None
if the structure is empty, otherwise the result of combining the cumulative left-associative result of thef
operation over all of the elements.
- Definition Classes
- Foldable
- See also
Reducible#reduceLeft for a version that doesn't need to return an
Option
for structures that are guaranteed to be non-empty. Example:scala> import cats.implicits._ scala> val l = List(6, 3, 2) This is equivalent to (6 - 3) - 2 scala> Foldable[List].reduceLeftOption(l)(_ - _) res0: Option[Int] = Some(1) scala> Foldable[List].reduceLeftOption(List.empty[Int])(_ - _) res1: Option[Int] = None
reduceRightOption for a right-associative alternative.
-
def
reduceLeftToOption[A, B](fa: F[A])(f: (A) ⇒ B)(g: (B, A) ⇒ B): Option[B]
- Definition Classes
- Foldable
-
def
reduceRightOption[A](fa: F[A])(f: (A, Eval[A]) ⇒ Eval[A]): Eval[Option[A]]
Reduce the elements of this structure down to a single value by applying the provided aggregation function in a right-associative manner.
Reduce the elements of this structure down to a single value by applying the provided aggregation function in a right-associative manner.
- returns
None
if the structure is empty, otherwise the result of combining the cumulative right-associative result of thef
operation over theA
elements.
- Definition Classes
- Foldable
- See also
Reducible#reduceRight for a version that doesn't need to return an
Option
for structures that are guaranteed to be non-empty. Example:scala> import cats.implicits._ scala> val l = List(6, 3, 2) This is eqivalent to 6 - (3 - 2) scala> Foldable[List].reduceRightOption(l)((current, rest) => rest.map(current - _)).value res0: Option[Int] = Some(5) scala> Foldable[List].reduceRightOption(List.empty[Int])((current, rest) => rest.map(current - _)).value res1: Option[Int] = None
reduceLeftOption for a left-associative alternative
-
def
reduceRightToOption[A, B](fa: F[A])(f: (A) ⇒ B)(g: (A, Eval[B]) ⇒ Eval[B]): Eval[Option[B]]
- Definition Classes
- Foldable
-
def
sequence[G[_], A](fga: F[G[A]])(implicit arg0: Applicative[G]): G[F[A]]
Thread all the G effects through the F structure to invert the structure from F[G[A]] to G[F[A]].
Thread all the G effects through the F structure to invert the structure from F[G[A]] to G[F[A]].
Example:
scala> import cats.implicits._ scala> val x: List[Option[Int]] = List(Some(1), Some(2)) scala> val y: List[Option[Int]] = List(None, Some(2)) scala> x.sequence res0: Option[List[Int]] = Some(List(1, 2)) scala> y.sequence res1: Option[List[Int]] = None
- Definition Classes
- Traverse
-
def
sequenceU[GA](fga: F[GA])(implicit U: Unapply[Applicative, GA]): M[F[A]]
Behaves just like sequence, but uses Unapply to find the Applicative instance for G.
Behaves just like sequence, but uses Unapply to find the Applicative instance for G.
Example:
scala> import cats.data.{Validated, ValidatedNel} scala> import cats.implicits._ scala> val x: List[ValidatedNel[String, Int]] = List(Validated.valid(1), Validated.invalid("a"), Validated.invalid("b")).map(_.toValidatedNel) scala> x.sequenceU res0: cats.data.ValidatedNel[String,List[Int]] = Invalid(NonEmptyList(a, b)) scala> x.sequence[ValidatedNel[String, ?], Int] res1: cats.data.ValidatedNel[String,List[Int]] = Invalid(NonEmptyList(a, b))
- Definition Classes
- Traverse
-
def
sequenceU_[GA](fa: F[GA])(implicit U: Unapply[Applicative, GA]): M[Unit]
Behaves like sequence_, but uses Unapply to find the Applicative instance for
G
- used whenG
is a type constructor with two or more parameters such as scala.util.EitherBehaves like sequence_, but uses Unapply to find the Applicative instance for
G
- used whenG
is a type constructor with two or more parameters such as scala.util.Eitherscala> import cats.implicits._ scala> val F = Foldable[List] scala> F.sequenceU_(List(Either.right[String, Int](333), Right(444))) res0: Either[String, Unit] = Right(()) scala> F.sequenceU_(List(Either.right[String, Int](333), Left("boo"))) res1: Either[String, Unit] = Left(boo)
Note that using
sequence_
instead ofsequenceU_
would not compile without explicitly passing in the type parameters - the type checker has trouble inferring the appropriate instance.- Definition Classes
- Foldable
-
def
sequence_[G[_], A](fga: F[G[A]])(implicit arg0: Applicative[G]): G[Unit]
Sequence
F[G[A]]
usingApplicative[G]
.Sequence
F[G[A]]
usingApplicative[G]
.This is similar to
traverse_
except it operates onF[G[A]]
values, so no additional functions are needed.For example:
scala> import cats.implicits._ scala> val F = Foldable[List] scala> F.sequence_(List(Option(1), Option(2), Option(3))) res0: Option[Unit] = Some(()) scala> F.sequence_(List(Option(1), None, Option(3))) res1: Option[Unit] = None
- Definition Classes
- Foldable
-
def
size[A](fa: F[A]): Long
The size of this Foldable.
The size of this Foldable.
This is overriden in structures that have more efficient size implementations (e.g. Vector, Set, Map).
Note: will not terminate for infinite-sized collections.
- Definition Classes
- Foldable
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
takeWhile_[A](fa: F[A])(p: (A) ⇒ Boolean): List[A]
Convert F[A] to a List[A], retaining only initial elements which match
p
.Convert F[A] to a List[A], retaining only initial elements which match
p
.- Definition Classes
- Foldable
-
def
toList[A](fa: F[A]): List[A]
Convert F[A] to a List[A].
Convert F[A] to a List[A].
- Definition Classes
- Foldable
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
traverse[G[_], A, B](fa: F[A])(f: (A) ⇒ G[B])(implicit G: Applicative[G]): G[F[B]]
Given a function which returns a G effect, thread this effect through the running of this function on all the values in F, returning an F[B] in a G context.
Given a function which returns a G effect, thread this effect through the running of this function on all the values in F, returning an F[B] in a G context.
Example:
scala> import cats.implicits._ scala> def parseInt(s: String): Option[Int] = Either.catchOnly[NumberFormatException](s.toInt).toOption scala> List("1", "2", "3").traverse(parseInt) res0: Option[List[Int]] = Some(List(1, 2, 3)) scala> List("1", "two", "3").traverse(parseInt) res1: Option[List[Int]] = None
- Definition Classes
- TraverseFilter → Traverse
-
def
traverseU[A, GB](fa: F[A])(f: (A) ⇒ GB)(implicit U: Unapply[Applicative, GB]): M[F[A]]
Behaves just like traverse, but uses Unapply to find the Applicative instance for G.
Behaves just like traverse, but uses Unapply to find the Applicative instance for G.
Example:
scala> import cats.implicits._ scala> def parseInt(s: String): Either[String, Int] = Either.catchOnly[NumberFormatException](s.toInt).leftMap(_ => "no number") scala> val ns = List("1", "2", "3") scala> ns.traverseU(parseInt) res0: Either[String, List[Int]] = Right(List(1, 2, 3)) scala> ns.traverse[Either[String, ?], Int](parseInt) res1: Either[String, List[Int]] = Right(List(1, 2, 3))
- Definition Classes
- Traverse
-
def
traverseU_[A, GB](fa: F[A])(f: (A) ⇒ GB)(implicit U: Unapply[Applicative, GB]): M[Unit]
Behaves like traverse_, but uses Unapply to find the Applicative instance for
G
- used whenG
is a type constructor with two or more parameters such as scala.util.EitherBehaves like traverse_, but uses Unapply to find the Applicative instance for
G
- used whenG
is a type constructor with two or more parameters such as scala.util.Eitherscala> import cats.implicits._ scala> def parseInt(s: String): Either[String, Int] = | try { Right(s.toInt) } | catch { case _: NumberFormatException => Left("boo") } scala> val F = Foldable[List] scala> F.traverseU_(List("333", "444"))(parseInt) res0: Either[String, Unit] = Right(()) scala> F.traverseU_(List("333", "zzz"))(parseInt) res1: Either[String, Unit] = Left(boo)
Note that using
traverse_
instead oftraverseU_
would not compile without explicitly passing in the type parameters - the type checker has trouble inferring the appropriate instance.- Definition Classes
- Foldable
-
def
traverse_[G[_], A, B](fa: F[A])(f: (A) ⇒ G[B])(implicit G: Applicative[G]): G[Unit]
Traverse
F[A]
usingApplicative[G]
.Traverse
F[A]
usingApplicative[G]
.A
values will be mapped intoG[B]
and combined usingApplicative#map2
.For example:
scala> import cats.implicits._ scala> def parseInt(s: String): Option[Int] = Either.catchOnly[NumberFormatException](s.toInt).toOption scala> val F = Foldable[List] scala> F.traverse_(List("333", "444"))(parseInt) res0: Option[Unit] = Some(()) scala> F.traverse_(List("333", "zzz"))(parseInt) res1: Option[Unit] = None
This method is primarily useful when
G[_]
represents an action or effect, and the specificA
aspect ofG[A]
is not otherwise needed.- Definition Classes
- Foldable
-
def
tupleLeft[A, B](fa: F[A], b: B): F[(B, A)]
Tuples the
A
value inF[A]
with the suppliedB
value, with theB
value on the left.Tuples the
A
value inF[A]
with the suppliedB
value, with theB
value on the left.- Definition Classes
- Functor
-
def
tupleRight[A, B](fa: F[A], b: B): F[(A, B)]
Tuples the
A
value inF[A]
with the suppliedB
value, with theB
value on the right.Tuples the
A
value inF[A]
with the suppliedB
value, with theB
value on the right.- Definition Classes
- Functor
-
def
void[A](fa: F[A]): F[Unit]
Empty the fa of the values, preserving the structure
Empty the fa of the values, preserving the structure
- Definition Classes
- Functor
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
widen[A, B >: A](fa: F[A]): F[B]
Lifts natural subtyping covariance of covariant Functors.
Lifts natural subtyping covariance of covariant Functors.
NOTE: In certain (perhaps contrived) situations that rely on universal equality this can result in a
ClassCastException
, because it is implemented as a type cast. It could be implemented asmap(identity)
, but according to the functor laws, that should be equal tofa
, and a type cast is often much more performant. See this example ofwiden
creating aClassCastException
.- Definition Classes
- Functor