IdT

cats.data.IdT
See theIdT companion object
final case class IdT[F[_], A](value: F[A])

IdT[F[_], A] is the identity monad transformer.

Attributes

Companion
object
Source
IdT.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

def ap[B](f: IdT[F, A => B])(implicit F: Apply[F]): IdT[F, B]

Attributes

Source
IdT.scala
def flatMap[B](f: A => IdT[F, B])(implicit F: FlatMap[F]): IdT[F, B]

Example:

Example:

scala> import cats.data.IdT

scala> val idT: IdT[List, Int] = IdT(List(1, 2, 3))
scala> idT.flatMap(x => IdT(List(x + 1)))
res0: IdT[List, Int] = IdT(List(2, 3, 4))

Attributes

Source
IdT.scala
def flatMapF[B](f: A => F[B])(implicit F: FlatMap[F]): IdT[F, B]

Example:

Example:

scala> import cats.data.IdT

scala> val idT: IdT[List, Int] = IdT(List(1, 2, 3))
scala> idT.flatMapF(x => List(Option(x).filter(_ % 2 == 0)))
res0: IdT[List, Option[Int]] = IdT(List(None, Some(2), None))

Attributes

Source
IdT.scala
def foldLeft[B](b: B)(f: (B, A) => B)(implicit F: Foldable[F]): B

Example:

Example:

scala> import cats.data.IdT

scala> val idT: IdT[List, Int] = IdT(List(1, 2, 3))
scala> idT.foldLeft(0)((acc, x) => acc + x)
res0: Int = 6

Attributes

Source
IdT.scala
def foldRight[B](lb: Eval[B])(f: (A, Eval[B]) => Eval[B])(implicit F: Foldable[F]): Eval[B]

Example:

Example:

scala> import cats.data.IdT
scala> import cats.Eval

scala> val idT: IdT[List, Int] = IdT(List(1, 2, 3))
scala> idT.foldRight(Eval.Zero)((x, acc) => Eval.later(x + acc.value)).value
res0: Int = 6

Attributes

Source
IdT.scala
def map[B](f: A => B)(implicit F: Functor[F]): IdT[F, B]

Example:

Example:

scala> import cats.data.IdT

scala> val idT: IdT[List, Int] = IdT(List(1, 2, 3))
scala> idT.map(_ + 1)
res0: IdT[List, Int] = IdT(List(2, 3, 4))

Attributes

Source
IdT.scala
def mapK[G[_]](f: FunctionK[F, G]): IdT[G, A]

Modify the context F using transformation f.

Modify the context F using transformation f.

Example:

scala> import cats.~>
scala> import cats.data.IdT

scala> val vectorToList: Vector ~> List = new ~>[Vector, List] { override def apply[A](v: Vector[A]): List[A] = v.toList }
scala> val idT: IdT[Vector, Int] = IdT(Vector(1, 2, 3))
scala> idT.mapK[List](vectorToList)
res0: IdT[List, Int] = IdT(List(1, 2, 3))

Attributes

Source
IdT.scala
def nonEmptyTraverse[G[_], B](f: A => G[B])(implicit F: NonEmptyTraverse[F], G: Apply[G]): G[IdT[F, B]]

Attributes

Source
IdT.scala
def reduceLeftTo[B](f: A => B)(g: (B, A) => B)(implicit F: Reducible[F]): B

Attributes

Source
IdT.scala
def reduceRightTo[B](f: A => B)(g: (A, Eval[B]) => Eval[B])(implicit F: Reducible[F]): Eval[B]

Attributes

Source
IdT.scala
def traverse[G[_], B](f: A => G[B])(implicit F: Traverse[F], G: Applicative[G]): G[IdT[F, B]]

Example:

Example:

scala> import cats.data.IdT

scala> val idT: IdT[List, Int] = IdT(List(1, 2, 3))
scala> idT.traverse[Option, Int](x => Option(x + 1))
res0: Option[IdT[List, Int]] = Some(IdT(List(2, 3, 4)))

Attributes

Source
IdT.scala

Inherited methods

Attributes

Inherited from:
Product

Attributes

Inherited from:
Product