sealed abstract class FreeT[S[_], M[_], A] extends Product with Serializable
FreeT is a monad transformer for Free monads over a Functor S
Stack safety for Free
and FreeT
is based on the paper
Stack Safety for Free by Phil Freeman
This Scala implementation of FreeT
and its usages are derived from
Scalaz's FreeT,
originally written by Brian McKenna.
- Source
- FreeT.scala
- Alphabetic
- By Inheritance
- FreeT
- Serializable
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
def
compile[T[_]](st: FunctionK[S, T])(implicit M: Functor[M]): FreeT[T, M, A]
Change the base functor
S
for aFreeT
action. -
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
flatMap[B](f: (A) ⇒ FreeT[S, M, B]): FreeT[S, M, B]
Binds the given continuation to the result of this computation.
-
def
flatMapK[N[_]](mn: ~>[M, [γ$0$]FreeT[S, N, γ$0$]])(implicit S: Functor[S], N: Monad[N]): FreeT[S, N, A]
Modify the context
M
using the transformationmn
, flattening the free suspensions into the outer. -
def
foldMap(f: FunctionK[S, M])(implicit M: Monad[M]): M[A]
Runs to completion, mapping the suspension with the given transformation at each step and accumulating into the monad
M
. -
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hoist[N[_]](mn: FunctionK[M, N]): FreeT[S, N, A]
Changes the underlying
Monad
for thisFreeT
, ie.Changes the underlying
Monad
for thisFreeT
, ie. turning thisFreeT[S, M, A]
into aFreeT[S, N, A]
. -
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def map[B](f: (A) ⇒ B)(implicit M: Applicative[M]): FreeT[S, M, B]
-
def
mapK[N[_]](mn: ~>[M, N]): FreeT[S, N, A]
Modify the context
M
using transformationmn
. -
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
def
productIterator: Iterator[Any]
- Definition Classes
- Product
-
def
productPrefix: String
- Definition Classes
- Product
-
def
resume(implicit S: Functor[S], M: Monad[M]): M[Either[S[FreeT[S, M, A]], A]]
Evaluates a single layer of the free monad
-
def
runM(interp: (S[FreeT[S, M, A]]) ⇒ M[FreeT[S, M, A]])(implicit S: Functor[S], M: Monad[M]): M[A]
Runs to completion, using a function that maps the resumption from
S
to a monadM
. -
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- FreeT → AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )