object ContT extends Serializable
- Alphabetic
- By Inheritance
- ContT
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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
apply[M[_], A, B](fn: ((B) ⇒ M[A]) ⇒ M[A]): ContT[M, A, B]
Build a computation that makes use of a callback, also known as a continuation.
Build a computation that makes use of a callback, also known as a continuation.
Example:
ContT.apply { callback => for { a <- doFirstThing() b <- doSecondThing(a) c <- callback(b) d <- doFourthThing(c) } yield d }
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- implicit def catsDataContTDefer[M[_], B]: Defer[[γ$2$]ContT[M, B, γ$2$]]
- implicit def catsDataContTMonad[M[_], A](implicit arg0: Defer[M]): Monad[[γ$4$]ContT[M, A, γ$4$]]
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
defer[M[_], A, B](b: ⇒ B): ContT[M, A, B]
Similar to pure but evaluation of the argument is deferred.
Similar to pure but evaluation of the argument is deferred.
This is useful for building a computation which calls its continuation as the final step. Instead of writing:
ContT.apply { cb => val x = foo() val y = bar(x) val z = baz(y) cb(z) }
you can write:
ContT.defer { val x = foo() val y = bar(x) baz(y) }
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
later[M[_], A, B](fn: ⇒ ((B) ⇒ M[A]) ⇒ M[A]): ContT[M, A, B]
Similar to apply but evaluation of the argument is deferred.
-
def
liftF[M[_], A, B](mb: M[B])(implicit M: FlatMap[M]): ContT[M, A, B]
Lifts the
M[B]
into anContT[M, A, B]
.Lifts the
M[B]
into anContT[M, A, B]
.scala> import cats._, data._, implicits._ scala> val a: EitherT[Eval, String, Int] = 1.pure[EitherT[Eval, String, *]] scala> val c: cats.data.ContT[EitherT[Eval, String, *], Int, Int] = ContT.liftF(a) scala> c.run(EitherT.rightT(_)).value.value res0: Either[String, Int] = Right(1) scala> c.run(_ => EitherT.leftT("a")).value.value res1: Either[String, Int] = Left(a)
-
def
liftK[M[_], B](implicit M: FlatMap[M]): ~>[M, [γ$0$]ContT[M, B, γ$0$]]
Same as liftF, but expressed as a FunctionK for use with mapK
Same as liftF, but expressed as a FunctionK for use with mapK
scala> import cats._, data._ scala> trait Foo[F[_]] { def bar: F[Int] } scala> def mapK[F[_], G[_]](fooF: Foo[F])(f: F ~> G): Foo[G] = new Foo[G] { def bar: G[Int] = f(fooF.bar) } scala> val eitherTFoo = new Foo[EitherT[Eval, String, *]] { def bar = EitherT.rightT(1) } scala> val contTFoo: Foo[ContT[EitherT[Eval, String, *], Int, *]] = mapK(eitherTFoo)(ContT.liftK) scala> contTFoo.bar.run(EitherT.rightT(_)).value.value res0: Either[String, Int] = Right(1)
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
pure[M[_], A, B](b: B): ContT[M, A, B]
Lift a pure value into
ContT
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- def tailRecM[M[_], A, B, C](a: A)(fn: (A) ⇒ ContT[M, C, Either[A, B]])(implicit M: Defer[M]): ContT[M, C, B]
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
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( ... ) @native()