Marker trait, which mark effect monad, where actual evaluation of expression happens after building a monad, during effect evaluation stage.
evaluation of expression inside async block always delayed.
Attributes
- Companion
- object
- Source
- CpsMonad.scala
- Graph
-
- Supertypes
- Known subtypes
-
trait CpsTryEffectMonad[F]trait CpsAsyncEffectMonad[F]trait CpsAsyncEffectMonadInstanceContext[F]trait CpsConcurrentEffectMonad[F]
Members list
Type members
Inherited types
Attributes
- Inherited from:
- CpsMonad
- Source
- CpsMonad.scala
Inherited and Abstract types
Attributes
- Inherited from:
- CpsMonad
- Source
- CpsMonad.scala
Value members
Concrete methods
For effect monads it is usually the same, as pure, but unlike pure, argument of evaluation is lazy.
For effect monads it is usually the same, as pure, but unlike pure, argument of evaluation is lazy.
Note, that delay is close to original return
in haskell with lazy evaluation semantics. So, for effect monads, representing pure as eager function is a simplification of semantics, real binding to monads in math sence, should be with delay
instead pure
Attributes
- Source
- CpsMonad.scala
Delayed evaluation of unit. If you want to override this for you monad, you should overrid delayed to.
Delayed evaluation of unit. If you want to override this for you monad, you should overrid delayed to.
Attributes
- Source
- CpsMonad.scala
shortcat for delayed evaluation of effect.
Wrap and flatten of monadic expression..
synonim for delay
Inherited methods
Attributes
- Inherited from:
- CpsMonad
- Source
- CpsMonad.scala
Inherited and Abstract methods
run op in the context environment.
bind combinator, which compose f
over fa
map a function f
over fa
Pure - wrap value t
inside monad.
Pure - wrap value t
inside monad.
Note, that pure use eager evaluation, which is different from Haskell.
Attributes
- Inherited from:
- CpsMonad
- Source
- CpsMonad.scala