FreeCpsMonad

@implicitAmbiguous("\n You use async without type parameter (i.e. async{ ... } instead async[F])\n Therefore exists multiple possible variants, definied in cps.monads.*\n If you really want use async wthout type parameter, define given instance of selected CpsMonad in the neareast scope\n")

Implementation for FreeCpsMonad. It is intentionally defiend at top-level, to fire 'implicitAmbigious' error when async is called without parameters and without select instance of CpsMonad in scope.

Source:
FreeCpsMonad.scala
class Object
trait Matchable
class Any

Type members

Types

type F[A] = FreeMonad[A]

Inherited types

type WF[X] = F[X]
Inherited from:
CpsMonad
Source:
CpsMonad.scala

Value members

Concrete methods

def adoptCallbackStyle[A](source: Try[A] => Unit => Unit): FreeMonad[A]
def error[A](e: Throwable): FreeMonad[A]
def flatMap[A, B](fa: FreeMonad[A])(f: A => FreeMonad[B]): FreeMonad[B]
def flatMapTry[A, B](fa: FreeMonad[A])(f: Try[A] => FreeMonad[B]): FreeMonad[B]
def map[A, B](fa: FreeMonad[A])(f: A => B): FreeMonad[B]
def pure[A](a: A): FreeMonad[A]

Inherited methods

def adoptAwait[A](fa: FreeMonad[A]): FreeMonad[A]

If is it statically known, that monad is evaluated in this context, then this call is completely eliminated by dotty-cps-async macro

If is it statically known, that monad is evaluated in this context, then this call is completely eliminated by dotty-cps-async macro

Returns:

fa

Inherited from:
CpsMonadInstanceContext
Source:
CpsMonadContext.scala
def apply[T](op: Context => FreeMonad[T]): FreeMonad[T]

run with this instance

run with this instance

Inherited from:
CpsMonadInstanceContext
Source:
CpsMonadContext.scala
def fromTry[A](r: Try[A]): FreeMonad[A]

transform r into pure value or error.

transform r into pure value or error.

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala
def mapTry[A, B](fa: FreeMonad[A])(f: Try[A] => B): FreeMonad[B]

map over result of checked evaluation of A

map over result of checked evaluation of A

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala
def mapTryAsync[A, B](fa: FreeMonad[A])(f: Try[A] => FreeMonad[B]): FreeMonad[B]

synonym for flatMapTry needed for processing awaits inside mapTry.

synonym for flatMapTry needed for processing awaits inside mapTry.

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala
def restore[A](fa: FreeMonad[A])(fx: Throwable => FreeMonad[A]): FreeMonad[A]

restore fa, ie if fa sucessful - return fa, otherwise apply fx to received error.

restore fa, ie if fa sucessful - return fa, otherwise apply fx to received error.

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala
def tryImpure[A](a: => FreeMonad[A]): FreeMonad[A]

try to evaluate async operation and wrap successful or failed result into F.

try to evaluate async operation and wrap successful or failed result into F.

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala
def tryPure[A](a: => A): FreeMonad[A]

try to evaluate synchonious operation and wrap successful or failed result into F.

try to evaluate synchonious operation and wrap successful or failed result into F.

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala
def tryPureAsync[A](a: () => FreeMonad[A]): FreeMonad[A]

async shift of tryPure.

async shift of tryPure.

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala
def withAction[A](fa: FreeMonad[A])(action: => Unit): FreeMonad[A]

ensure that action will run before getting value from fa

ensure that action will run before getting value from fa

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala
def withActionAsync[A](fa: FreeMonad[A])(action: () => FreeMonad[Unit]): FreeMonad[A]

async shift of withAction.

async shift of withAction.

This method is substituted instead withAction, when we use await inside withAction argument.

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala
def withAsyncAction[A](fa: FreeMonad[A])(action: => FreeMonad[Unit]): FreeMonad[A]

return result of fa after completition of action.

return result of fa after completition of action.

Inherited from:
CpsTryMonad
Source:
CpsMonad.scala