WriterT

cats.data.WriterT
See theWriterT companion object
final case class WriterT[F[_], L, V](run: F[(L, V)])

Attributes

Companion
object
Source
WriterT.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[Z](f: WriterT[F, L, V => Z])(implicit F: Apply[F], L: Semigroup[L]): WriterT[F, L, Z]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer: WriterT[Option, String, Int] = WriterT.liftF(Some(123))
scala> val wt: WriterT[Option, String, Int] = writer.tell("error")
res0: WriterT[Option, String, Int] = WriterT(Some((error,123)))

scala> val func = WriterT.liftF[Option, String, Int => List[Int]](Some(i => List(i)))
scala> val func2 = func.tell("log")

scala> wt.ap(func2)
res1: WriterT[Option, String, List[Int]] = WriterT(Some((logerror,List(123))))

Attributes

Source
WriterT.scala
def bimap[M, U](f: L => M, g: V => U)(implicit functorF: Functor[F]): WriterT[F, M, U]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val wr1 = WriterT.liftF[Option, String, Int](Some(123)).tell("456")
res0: WriterT[Option, String, Int] = WriterT(Some(456,123))

scala> wr1.bimap(_.toInt, _.show)
res1: WriterT[Option, Int, String] = WriterT(Some((456,123)))

Attributes

Source
WriterT.scala
def compare(that: WriterT[F, L, V])(implicit Ord: Order[F[(L, V)]]): Int

Attributes

Source
WriterT.scala
def contramap[Z](fn: Z => V)(implicit F: Contravariant[F]): WriterT[F, L, Z]

Attributes

Source
WriterT.scala
def flatMap[U](f: V => WriterT[F, L, U])(implicit flatMapF: FlatMap[F], semigroupL: Semigroup[L]): WriterT[F, L, U]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val wr1 = WriterT.liftF[Option, String, Int](Some(123)).tell("error")
res0: WriterT[Option, String, Int] = WriterT(Some(error,123))
scala> val func = (i:Int) => WriterT.liftF[Option, String, Int](Some(i * 2)).tell(i.show)

scala> wr1.flatMap(func)
res1: WriterT[Option, String, Int] = WriterT(Some((error123,246)))

Attributes

Source
WriterT.scala
def foldLeft[C](c: C)(f: (C, V) => C)(implicit F: Foldable[F]): C

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("hi")
scala> writer.foldLeft(456)((acc,v) => acc + v)
res0: Int = 579

Attributes

Source
WriterT.scala
def foldRight[C](lc: Eval[C])(f: (V, Eval[C]) => Eval[C])(implicit F: Foldable[F]): Eval[C]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.Eval
scala> import cats.syntax.all._

scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("hi")
scala> writer
    |    .foldRight(Eval.now(456))((v,c) => c.map(_ + v))
    |    .value
res0: Int = 579

Attributes

Source
WriterT.scala
def imap[Z](f: V => Z)(g: Z => V)(implicit F: Invariant[F]): WriterT[F, L, Z]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val wr1: WriterT[Option, String, Int] = WriterT.liftF(Some(123))
scala> val wr2 = wr1.tell("log...")
scala> wr2.imap(_ * 2)(_ / 2)
res0: WriterT[Option, String, Int] = WriterT(Some((log...,246)))

Attributes

Source
WriterT.scala
def listen(implicit F: Functor[F]): WriterT[F, L, (V, L)]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer: WriterT[Option, String, Int] = WriterT.liftF(Some(123))
scala> val wt: WriterT[Option, String, Int] = writer.tell("error").tell(" log")
res0: WriterT[Option, String, Int] = WriterT(Some((error log,123)))

scala> wt.listen
res1: WriterT[Option, String, (Int,String)] = WriterT(Some((error log,(123,error log))))

Attributes

Source
WriterT.scala
def map[Z](fn: V => Z)(implicit functorF: Functor[F]): WriterT[F, L, Z]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val wr1: WriterT[Option, String, Int] = WriterT.liftF(None)
scala> val wr2 = wr1.tell("error")
res0: WriterT[Option, String, Int] = WriterT(None)

scala> wr2.map(_ * 2)
res1: WriterT[Option, String, Int] = WriterT(None)

scala> val wr3: WriterT[Option, String, Int] = WriterT.liftF(Some(456))
scala> val wr4 = wr3.tell("error")
scala> wr4.map(_ * 2)
res2: WriterT[Option, String, Int] = WriterT(Some((error,912)))

Attributes

Source
WriterT.scala
def mapBoth[M, U](f: (L, V) => (M, U))(implicit functorF: Functor[F]): WriterT[F, M, U]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val wr1 = WriterT.liftF[Option, String, Int](Some(123)).tell("quack")
res0: WriterT[Option, String, Int] = WriterT(Some(quack,123))

scala> wr1.mapBoth((s,i) => (s + " " + s, i * 2))
res1: WriterT[Option, String, Int] = WriterT(Some((quack quack,246)))

Attributes

Source
WriterT.scala
def mapK[G[_]](f: FunctionK[F, G]): WriterT[G, L, V]

Modify the context F using transformation f.

Modify the context F using transformation f.

Example:

scala> import cats.data.WriterT
scala> import cats.arrow.FunctionK
scala> import cats.syntax.all._

scala> val optionWriter = WriterT.liftF[Option, String, Int](Some(123)).tell("log")
res0: WriterT[Option, String, Int](Some((log,123)))

scala> def toList[A](option: Option[A]): List[A] = option.toList
scala> val listWriter = optionWriter.mapK(FunctionK.lift(toList _))
res1: WriterT[List, String, Int](List((log,123)))

Attributes

Source
WriterT.scala
def mapWritten[M](f: L => M)(implicit functorF: Functor[F]): WriterT[F, M, V]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer = WriterT.liftF[Option, String, Int](Some(246)).tell("error")
res0: WriterT[Option, String, Int] = WriterT(Some((error,246)))

scala> writer.mapWritten(i => List(i))
res1: WriterT[Option, List[String], Int] = WriterT(Some((List(error),246)))

Attributes

Source
WriterT.scala
def reset(implicit monoidL: Monoid[L], functorF: Functor[F]): WriterT[F, L, V]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("error")
scala> writer.reset
res0: WriterT[Option, String, Int] = WriterT(Some((,123)))

Attributes

Source
WriterT.scala
def show(implicit F: Show[F[(L, V)]]): String

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer = WriterT.liftF[Option, String, Int](Some(456)).tell("log...")
scala> writer.show
res0: String = Some((log...,456))

Attributes

Source
WriterT.scala
def swap(implicit functorF: Functor[F]): WriterT[F, V, L]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("log")
scala> writer.swap
res0: WriterT[Option, Int, String] = WriterT(Some((123,log)))

Attributes

Source
WriterT.scala
def tell(l: L)(implicit functorF: Functor[F], semigroupL: Semigroup[L]): WriterT[F, L, V]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer = WriterT.liftF[Option, List[String], Int](Some(123))
scala> writer.tell(List("a","b","c")).tell(List("d","e","f"))
res0: WriterT[Option, List[String], Int] = WriterT(Some((List(a, b, c, d, e, f),123)))

Attributes

Source
WriterT.scala
def traverse[G[_], V1](f: V => G[V1])(implicit F: Traverse[F], G: Applicative[G]): G[WriterT[F, L, V1]]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer = WriterT.liftF[Option, String, Int](Some(123)).tell("hi")
scala> writer.traverse[List,Int](i => List(i))
res0: List[WriterT[Option, String, Int]] = List(WriterT(Some((hi,123))))

Attributes

Source
WriterT.scala
def value(implicit functorF: Functor[F]): F[V]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer: WriterT[Option, List[String], Int] = WriterT.liftF(Some(123))
scala> val wt: WriterT[Option, List[String], Int] = writer.tell(List("error"))
res0: WriterT[Option, List[String], Int] = WriterT(Some((List(error),123)))

scala> wt.value
res1: Option[Int] = Some(123)

Attributes

Source
WriterT.scala
def written(implicit functorF: Functor[F]): F[L]

Example:

Example:

scala> import cats.data.WriterT
scala> import cats.syntax.all._

scala> val writer: WriterT[Option, List[String], Int] = WriterT.liftF(Some(123))
scala> writer.tell(List("a","b","c")).written.getOrElse(Nil)
res0: List[String] = List(a, b, c)

Attributes

Source
WriterT.scala

Inherited methods

Attributes

Inherited from:
Product

Attributes

Inherited from:
Product