Class/Object

io.github.timwspence.cats.stm

STM

Related Docs: object STM | package stm

Permalink

final class STM[A] extends AnyVal

Monad representing transactions involving one or more TVars.

This design was inspired by [Beautiful Concurrency](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/beautiful.pdf) and informed by ZIO which has a common origin in that paper via the [stm package](http://hackage.haskell.org/package/stm).

Linear Supertypes
AnyVal, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. STM
  2. AnyVal
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. final def commit[F[_]](implicit arg0: Async[F]): F[A]

    Permalink

    Commit this STM action as an IO action.

    Commit this STM action as an IO action. The mutable state of TVars is only modified when this is invoked (hence the IO context - modifying mutable state is a side effect).

  6. final def flatMap[B](f: (A) ⇒ STM[B]): STM[B]

    Permalink

    Monadic bind on STM.

  7. def getClass(): Class[_ <: AnyVal]

    Permalink
    Definition Classes
    AnyVal → Any
  8. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  9. final def map[B](f: (A) ⇒ B): STM[B]

    Permalink

    Functor map on STM.

  10. final def orElse(fallback: STM[A]): STM[A]

    Permalink

    Try an alternative STM action if this one retries.

  11. def toString(): String

    Permalink
    Definition Classes
    Any

Inherited from AnyVal

Inherited from Any

Ungrouped