trait Memoizable[F[_]] extends Serializable with Type[F]
A type-class for F[A]
monads that are suspendable
and whose evaluation can be memoized, along with a guarantee
that the captured side-effects only happen once.
The memoize
operation takes an F[_]
instance and
returns a new F
that guarantees that its evaluation and
all related side-effects only happen once, with the results
to be reused on subsequent evaluations.
Note that the memoize
operation can be a no-op. For example
Scala's Future
doesn't need to do anything special as memoization
happens by default and idempotency is guaranteed.
- Self Type
- Instance[F]
- Source
- Memoizable.scala
Linear Supertypes
Known Subclasses
Ordering
- Alphabetic
- By Inheritance
Inherited
- Memoizable
- Type
- Type
- Type
- Type
- Type
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Abstract Value Members
-
implicit abstract
def
applicative: Applicative[F]
- Definition Classes
- Type
-
implicit abstract
def
functor: Functor[F]
- Definition Classes
- Type
- abstract def memoize[A](fa: F[A]): F[A]
-
implicit abstract
def
monad: Monad[F]
- Definition Classes
- Type
-
implicit abstract
def
monadEval: MonadEval[F]
- Definition Classes
- Type
-
implicit abstract
def
suspendable: Suspendable[F]
- Definition Classes
- Type
Concrete Value Members
- def evalOnce[A](a: ⇒ A): F[A]
This is the API documentation for the Monix library.
Package Overview
monix.execution exposes lower level primitives for dealing with asynchronous execution:
Atomic
types, as alternative tojava.util.concurrent.atomic
monix.eval is for dealing with evaluation of results, thus exposing Task and Coeval.
monix.reactive exposes the
Observable
pattern:Observable
implementationsmonix.types implements type-class shims, to be translated to type-classes provided by libraries such as Cats or Scalaz.
monix.cats is the optional integration with the Cats library, providing translations for the types described in
monix.types
.monix.scalaz is the optional integration with the Scalaz library, providing translations for the types described in
monix.types
.