Reval

jam.monad.Reval$
See theReval companion class
object Reval extends RevalInstances

Attributes

Companion:
class
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Reval.type

Members list

Concise view

Type members

Classlikes

final case class Eval[F[_], +A](r: Resource[F, A]) extends Reval[F, A]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Reval[F, A]
class Object
trait Matchable
class Any
final case class FlatMap[F[_], A, +B](s: Reval[F, A], fs: A => Reval[F, B]) extends Reval[F, B]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Reval[F, B]
class Object
trait Matchable
class Any
final case class Memoize[F[_], +A](s: Reval[F, A], key: Object) extends Reval[F, A]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Reval[F, A]
class Object
trait Matchable
class Any

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def always[F[_] : Functor, A](reval: F[(A, F[Unit])]): Reval[F, A]

Constructs Reval from allocation and release functions that will be executed always when it is needed.

Constructs Reval from allocation and release functions that will be executed always when it is needed.

Attributes

def evalAlways[F[_], A](f: F[A]): Reval[F, A]

Constructs Reval from an allocation function with no-op release that will be executed always when it is needed.

Constructs Reval from an allocation function with no-op release that will be executed always when it is needed.

Attributes

def evalLater[F[_], A : RevalKeyGen](f: F[A]): Reval[F, A]

Constructs Reval from an allocation function with no-op release that will be executed once when it is needed.

Constructs Reval from an allocation function with no-op release that will be executed once when it is needed.

Attributes

def later[F[_] : Functor, A : RevalKeyGen](reval: F[(A, F[Unit])]): Reval[F, A]

Constructs Reval from allocation and release functions that will be executed once when it is needed.

Constructs Reval from allocation and release functions that will be executed once when it is needed.

Attributes

def makeAlways[F[_] : Functor, A](allocate: F[A])(release: A => F[Unit]): Reval[F, A]
def makeLater[F[_] : Functor, A : RevalKeyGen](allocate: F[A])(release: A => F[Unit]): Reval[F, A]
def makeThunkAlways[F[_] : Sync, A](allocate: => A)(release: A => Unit): Reval[F, A]
def makeThunkLater[F[_] : Sync, A : RevalKeyGen](allocate: => A)(release: A => Unit): Reval[F, A]
def pure[F[_], A](a: A): Reval[F, A]

Constructs Reval from a pure value with no-op release.

Constructs Reval from a pure value with no-op release.

Attributes

def raiseError[F[_], A, E](e: E)(implicit E: ApplicativeError[F, E]): Reval[F, A]
def resourceAlways[F[_], A](r: Resource[F, A]): Reval[F, A]
def resourceLater[F[_], A : RevalKeyGen](r: Resource[F, A]): Reval[F, A]
def thunkAlways[F[_] : Sync, A](a: => A): Reval[F, A]
def thunkLater[F[_] : Sync, A : RevalKeyGen](a: => A): Reval[F, A]

Implicits

Inherited implicits

final implicit def revalMonad[F[_]]: StackSafeMonad[[_] =>> Reval[F, _$7]]

Attributes

Inherited from:
RevalInstancesLp0
final implicit def revalMonadError[F[_], E](implicit E: ApplicativeError[F, E]): MonadError[[_] =>> Reval[F, _$10], E]

Attributes

Inherited from:
RevalInstances
final implicit def revalMonoid[F[_], A : Monoid]: Monoid[Reval[F, A]]

Attributes

Inherited from:
RevalInstances